簡體   English   中英

Facebook4j API:搜索

[英]Facebook4j API : Search

我正在使用Facebook4j來獲取關鍵字的狀態

 facebook4j.conf.ConfigurationBuilder fac = new facebook4j.conf.ConfigurationBuilder();

            fac.setDebugEnabled(true)
              .setOAuthAppId("******")
              .setOAuthAppSecret("********")
              .setOAuthPermissions("email,publish_stream,...");
            FacebookFactory ff = new FacebookFactory(fac.build());
           facebook = ff.getInstance();
           new Thread(new Runnable() { 
               @Override
               public void run() {
                   try {
                       search();
                   }
                   catch (Exception e) {
                    // TODO: handle exception
                       System.out.println(e +" ERROOOOOOR");
                }}}).start();
}
//search
public void search() throws Exception {
         ResponseList<JSONObject> results = facebook.search("%23morocco");
         System.out.println(results);
         for (JSONObject result : results) {
             System.out.println(result);
         }

         results = facebook.search("orange", new Reading().until("yesterday"));
         System.out.println(results);
         for (JSONObject result : results) {
             System.out.println(result);
         }
     }

我用facebook api鍵替換了*我有一個例外問題,錯誤是:java.lang.IllegalStateException:沒有令牌可用。 ERROOOOOOR

這是你如何在沒有外部配置文件的情況下使用facebook4j。 下面的代碼提供了一個最小的例子。 這是我的簡單演示:

import facebook4j.Facebook;
import facebook4j.FacebookException;
import facebook4j.FacebookFactory;
import facebook4j.auth.AccessToken;

public class Facebook4JMinimalExample {

/**
 * A simple Facebook4J client.
 * 
 * 
 * @param args
 * @throws FacebookException 
 */
public static void main(String[] args) throws FacebookException {

// Generate facebook instance.
Facebook facebook = new FacebookFactory().getInstance();
// Use default values for oauth app id.
facebook.setOAuthAppId("", "");
// Get an access token from: 
// https://developers.facebook.com/tools/explorer
// Copy and paste it below.
String accessTokenString = "PASTE_YOUR_ACCESS_TOKEN_STRING_HERE";
AccessToken at = new AccessToken(accessTokenString);
// Set access token.
facebook.setOAuthAccessToken(at);

// We're done.
// Write some stuff to your wall.
facebook.postStatusMessage("Wow, it works...");
}
}

請注意,首先調用“facebook.setOAuthAppId(..)”然后設置訪問令牌非常重要。 否則,您將收到IllegalStateException,說“未提供OAuth應用程序ID /秘密組合”。

在這種情況下,我剛剛使用了OAuthAppId的默認值。

您忘記使用fac.setOAuthAccessToken("*****")設置訪問令牌。 文檔 (強調我的):

所有Graph API搜索查詢都需要使用 access_token=<token>參數傳入的訪問令牌 您需要的訪問令牌類型取決於您正在執行的搜索類型。

  • pageplace對象搜索需要應用程序訪問令牌。
  • 所有其他端點都需要用戶訪問令牌

您可以在此處為自己生成一個,但請記住這些訪問令牌具有到期時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM