Android和Facebook喜欢使用Open Graph对象的动作

Bap*_*sta 5 android facebook-like

像移动应用程序一样,Facebook已经发布了动作.

正如文件所说:

To publish a built-in Like action on an Open Graph object,
invoke the following HTTP POST request with a user’s access
token and the url of the Open Graph object.
This Open Graph object can be of any type.

curl -X POST \
    -F 'access_token=USER_ACCESS_TOKEN' \
    -F 'object=OG_OBJECT_URL' \
    https://graph.facebook.com/[User FB ID]/og.likes
Run Code Online (Sandbox Code Playgroud)

通常,为了提出例如用户信息的请求,我使用这种代码:

Facebook facebook;
facebook = new Facebook(AppConfig.FACEBOOK_APP_ID);

if (facebook.isSessionValid())
{
    JSONObject obj = facebook.request("me");
    ...
}
else
{
    facebook.authorize(...)
    {
        @Override public void onComplete(Bundle values)
        {
            String token = facebook.getAccessToken();
            long expires = facebook.getAccessExpires();
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题很简单,但我找不到答案,如何在JAVA代码中创建"graph.facebook.com/ [User FB ID] /og.likes"请求,一旦我检索到用户访问令牌,到期了?

C A*_*thy 0

你会做类似下面的事情:

1/ 初始化 facebook 实例后,您可以声明以下内容:

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Run Code Online (Sandbox Code Playgroud)

2/ 然后当你想发布类似内容时,可以使用以下代码:

Bundle params = new Bundle();
params.putString("object",OG_OBJECT_URL);

mAsyncRunner.request("me/og.likes", params, 
                    "POST", new BaseRequestListener() {
                       @Override
                       public void onComplete(final String response, final Object state) {
                           // handle success
                       }
                    });
Run Code Online (Sandbox Code Playgroud)

3/您可以在此处选择 BaseRequestListener 的实现:https://github.com/fbsamples/android-social-cafe/blob/master/src/com/facebook/samples/socialcafe/BaseRequestListener.java

最后,要查看开放图谱的示例,请参阅此示例: https: //github.com/fbsamples/android-social-cafe