使用Facebook Graph API在用户墙上发布

时间:2018-03-14 16:37:37

标签: facebook facebook-graph-api

我想使用Graph API从bindViewHolder墙上的user1发帖。

我获得user2 access_token user1 publish_actions权限,就像它在the Graph API reference中说的那样。  并打电话给

access_token='<token-for-user1>'
user2='<id-of-user2>'
curl -s \
    -XPOST \
    -d "access_token=$access_token" \
    -d "message=$message" \
    "https://graph.facebook.com/v2.12/${user2}/feed"

但我得到的只是:

{
    "error": {
        "message": "Unsupported post request. Object with ID '$user2' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https:\/\/developers.facebook.com\/docs\/graph-api",
        "type": "GraphMethodException",
        "code": 100,
        "error_subcode": 33,
        "fbtrace_id": "***********"
    }
}

我做错了什么,如何解决?

我提前感谢你,

登录脚本:

app_access_token="$app_id|$client_token"

# Give user_code to user1, and save code as $code
curl -s \
    -XPOST \
    -d "access_token=$app_access_token" \
    -d 'scope=publish_actions' \
    -d 'redirect_uri=https://www.facebook.com/connect/login_success.html' \
    'https://graph.facebook.com/v2.12/device/login'

# user1 goes to https://www.facebook.com/device
...

# Save access_token in $access_token and use in the code above
curl -s \
    -XPOST \
    -d "access_token=$app_access_token" \
    -d "code=$code" \
    'https://graph.facebook.com/v2.12/device/login_status'

我已添加到应用程序:

2 个答案:

答案 0 :(得分:0)

无法在其他用户的墙上发布信息。您只能使用自己的访问令牌和publish_actions权限在当前用户的墙上发布。

Sharer.php提供了选择朋友的可能性,这是唯一的方法:https://www.facebook.com/sharer/sharer.php?u=[encoded-url]

您也可以使用“共享”对话框,它也可以选择朋友:https://developers.facebook.com/docs/sharing/reference/share-dialog

答案 1 :(得分:0)

自2018年4月24日起,pubish_actions权限已被删除。 有关更多详细信息,请参见Breaking Changes Changelog。提供 我们鼓励您的应用程序用户将内容共享到Facebook的一种方式 您可以改用我们的Sharing products

请参阅文档:https://developers.facebook.com/docs/facebook-login/android/permissions#permissions-publish