0

我正在尝试创建一个公共网站,其中显示来自各种 Facebook 页面的最后 5 个时间线帖子。

我正在使用 Facebook Graph API 来请求 JSON,并使用 JSON 解析器 (www.aspjson.com) 来使用 ASP Classic 读取 JSON。

到目前为止,我编写的代码非常简单:

<!--#include file="scripts/aspJSON1.12.asp"-->
<%

response.codepage = 65001
response.charset = "utf-8"

function EncodingFixer(str)
  EncodingFixer = replace(str, "u00e5", "&aring;")
  EncodingFixer = replace(EncodingFixer, "u00e6", "&aelig;")
  EncodingFixer = replace(EncodingFixer, "u00f8", "&oslash;")
end function

sub FacebookAPI()
  set objHTTP = createobject("MSXML2.ServerXMLHTTP.6.0")
  objHTTP.Open "GET", Location, false
  objHTTP.Send

  set oJSON = new aspJSON
  oJSON.loadJSON(objHTTP.responsetext)

  set ItemList = oJSON.data("data")

  for each Item in ItemList
    PostDate = formatdatetime(left(ItemList.item(Item).item("created_time"), 10), 2)
    Message = EncodingFixer(ItemList.item(Item).item("message"))
    response.write "<br /><strong>" & PostDate & "</strong><br />" & Message & "<br />"
  next
end sub

Location = "https://graph.facebook.com/PAGE_ID/feed?fields=created_time,message,comments,likes&limit=5&access_token=ACCESS_TOKEN"
call FacebookAPI()

%>

我的问题是:我在 Graph API Explorer 中创建令牌,过了一会儿,它就过期了。我找不到创建访问令牌的工作示例,有人可以帮忙吗?

4

1 回答 1

0

这些令牌是短暂的,仅持续两个小时。您需要为自己获取一个在https://developers.facebook.com/roadmap/offline-access-removal/场景 5 下不会过期的页面访问令牌

使用短期用户访问令牌交换长期访问令牌

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN

通过使用长期用户访问令牌,查询 [User ID]/accounts 端点

https://graph.facebook.com/me/accounts?
    access_token=EXTENDED_ACCESS_TOKEN

或者

https://graph.facebook.com/PAGE_ID?fields=access_token&access_token=EXTENDED_ACCESS_TOKEN

现在将为用户管理的页面提供不会过期的页面访问令牌。

页面令牌不会过期。

在http://philippeharewood.com/facebook/getting-your-facebook-page-on-your-website-with-access-tokens/中查看 PHP 的完整示例

于 2013-07-27T21:44:43.813 回答