我是管理员的Facebook提要页面

时间:2014-02-13 14:28:57

标签: facebook facebook-graph-api feed

我知道这个问题经常被问到,但我试图在Facebook页面上发帖2天以后没有任何结果。

这就是我所拥有的:

  • 具有APP_ID和APP_SECRET
  • 的应用程序
  • 带有ID的Facebook页面
  • 我的个人身份证件

我想以编程方式在页面上发布一个Feed,并且不知道所有这些是如何工作的。

我试图通过

请求

https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

它给了我一个访问令牌,但当我尝试

https://graph.facebook.com/ /喂?ACCESS_TOKEN = TOKEN

这不起作用。

我也尝试过请求我的access_token,但它需要一个redirect_uri,并且给出的令牌是新的URL并需要一个动作(接受)权限。那不是我想要的。

我只想在我是管理员的页面上发布..

提前致谢。

1 个答案:

答案 0 :(得分:2)

有4种类型的访问令牌:

  1. 用户访问令牌(包括页面操作。)
  2. App Access Token(修改并阅读应用程序设置。它还可用于发布Open Graph操作。)
  3. 页面访问令牌(特定于页面操作。)
  4. 客户端令牌(很少使用)
  5.   

    https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

    您所做的就是检索App Access令牌,这与页面无关。

    因此,为了以管理员身份发布Facebook Feed页面,您应该使用用户访问令牌或页面访问令牌。

    用户访问令牌

    您必须通过授权对话框来检索您的用户访问令牌:

    https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=145634995501895&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html%3Fdisplay%3Dpage&response_type=token&fbconnect=1&perms=manage_pages%2Cstatus_update

    确保您同时授予 manage_pages status_update 权限,如上面的 perms = 参数所示。原因可以在这里找到:why does posting to facebook page yield "user hasn't authorized the application"

    然后,您在https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_USER_ACCESS_TOKEN

    上的页面上执行HTTP POST请求(例如message = hello)

    页面访问令牌

    您必须使用用户访问令牌通过API调用检索页面访问令牌:

    1. https://graph.facebook.com/me/accounts?access_token=YOUR_USER_ACCESS_TOKEN(获取所有网页令牌)

    2. https://graph.facebook.com/YOUR_PAGE_ID?fields=access_token&access_token=YOUR_USER_ACCESS_TOKEN(按页面ID获取特定页面令牌)

    3. 然后您通过3种方式对页面执行HTTP POST请求(例如message = hello):

      1. https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
      2. https://graph.facebook.com/me/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
      3. https://graph.facebook.com/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
      4. <强>更新

        我建议您手动授予用户访问令牌(例如,会出现登录/授权对话框,并且用户需要手动点击以接受APP权限请求,您不能以编程方式进行网页抓取以执行此操作,因为它违反了Facebook平台的TOS), 然后通过https://graph.facebook.com/oauth/access_token?client_id=my_app_id&client_secret=my_app_secret&grant_type=fb_exchange_token&fb_exchange_token=User_Access_Token

        将其延长至长期(过期2个月)

        现在您拥有长期用户访问令牌,然后调用https://graph.facebook.com/me/accounts?access_token=LONG_LIVE_USER_ACCESS_TOKEN以获得永不过期的页面访问令牌。您可以在https://developers.facebook.com/tools/debug/accesstoken?q=YOUR_PAGE_ACCESS_TOKEN

        调试页面访问令牌

        如您所见,过期日期从不

        enter image description here

        <强>文档

        1. https://developers.facebook.com/docs/facebook-login/access-tokens/
        2. https://developers.facebook.com/docs/graph-api/reference/app(没有这样的帖子发布到管理员页面)