无法从Android应用程序中执行“Facebook Like”

时间:2013-05-28 11:06:39

标签: android facebook-graph-api facebook-like facebook-opengraph facebook-android-sdk

在我的Android应用程序中,我正在尝试实现一个简单的“Like Button”功能。

我们已经从同一个应用程序执行Facebook登录。 我们还创建了一个Open Graph Like动作&我们的应用程序仪表板上也有一个Link对象。

这是我们用来发布之类的代码。

public static void likeFacebookPage(Context context,String pageUrl)
{
    Bundle params = new Bundle();
    params.putString("object",pageUrl);
    Request request = new Request(
        Session.getActiveSession(),
        "me/og.likes",
        params,
        HttpMethod.POST
    );
    Response response = request.executeAndWait();
    // handle the response

}

pageUrl 参数中,我们有:

http://www.facebook.com/<object_id>

object_id ”是我们在Open Graph中创建的链接对象的ID。

执行上述方法后,响应对象收到如下:

{Response:  responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}

但是Like计数没有得到更新,导致我们相信这个过程不起作用。

我们还包含权限“ publish_actions ”&amp;我们的代码以及App Dashboard上的“ user_likes ”。

请帮助我们配置此功能。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如此处https://developers.facebook.com/docs/reference/api/publishing/所述,您使用publish_actions和publish_stream权限向类似的对象发布了类似内容:

    Bundle postParams = new Bundle();
    Request request = new Request(Session.getActiveSession(),
            FB_OBJECT_ID+"/likes", postParams, HttpMethod.POST, new Callback() {

                @Override
                public void onCompleted(Response response) {

                }
            });
    RequestAsyncTask task = new RequestAsyncTask(request);
    task.execute();

你的FB_OBJECT_ID只是对象的ID。即如果你想要一张照片,FB_OBJECT_ID就是pid。对于专辑,FB_OBJECT_ID将是帮助。