在公共网站上显示页面时间线

时间:2013-07-26 01:19:33

标签: json facebook facebook-graph-api asp-classic

我正在尝试创建一个公共网站,显示来自各种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资源管理器中创建令牌,过了一会儿,它就会过期。 我找不到创建访问令牌的工作示例,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分: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
  

通过使用长期存在的用户访问令牌,查询[用户ID] /帐户端点

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

  

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

页面令牌不会过期。

请参阅PHP http://philippeharewood.com/facebook/getting-your-facebook-page-on-your-website-with-access-tokens/

中的完整示例