如何在Facebook页面上获取应用程序的长期访问令牌?

时间:2012-07-19 09:35:46

标签: facebook publish facebook-wall

挖掘好几天,让我的PHP应用程序在Facebook粉丝页面上写,几乎疯了。

  1. 已经为特定的Facebook页面提供了我的应用manage_page权限。

  2. 访问

    h..s//www.facebook.com/dialog/oauth?client_id=APP_ID&redirect_uri=SOME_FALLBACK_URL_TO_GET_ACCESS_TOKEN_FROM_URL&response_type=token&scope=manage_pages,publish_stream
    
  3. 从上一步的结果复制访问令牌

  4. 访问

    h..s//graph.facebook.com/me/accounts?access_token=COPIED_ACCESS_TOKEN
    
  5. 得到如下结果:

    "data": [
        {
             "name": "PAGE_TITLE",
             "access_token":     "SHORT_LIVING_ACCESS_TOKEN",
             "category": "Local/travel",
             "id": "PAGE_ID_THAT_APP_IS_TO_WRITE_ON_WALL",
             "perms": [
                        "ADMINISTER",
                        "EDIT_PROFILE",
                        "CREATE_CONTENT",
                        "MODERATE_CONTENT",
                        "CREATE_ADS",
                        "BASIC_ADMIN"
                      ]
       },
    
  6. 复制SHORT_LIVING_ACCESS_TOKEN

  7. 访问

    h..s://graph.facebook.com/oauth/access_token?client_id={APP_ID}&client_secret={APP_SECRET}&grant_type=fb_exchange_token&fb_exchange_token={SHORT_LIVING_ACCESS_TOKEN_FROM_STEP_5}
    
  8. 得到错误并卡在这里:

    {"error_code":1,"error_msg":"An unknown error occurred"}
    
  9. P.S。我在必要时正确替换了{APP_ID}{APP_SECRET}

    请帮忙!

1 个答案:

答案 0 :(得分:2)

我认为你做错了。您将获得一个短暂的页面访问令牌并尝试延长它。

你应该做的是获得一个短暂的用户访问令牌,延长 然后获取页面访问令牌使用长期用户访问令牌。

进程应该为您提供一个没有默认过期的页面访问令牌。