我正在尝试创建一个公共网站,显示来自各种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", "å")
EncodingFixer = replace(EncodingFixer, "u00e6", "æ")
EncodingFixer = replace(EncodingFixer, "u00f8", "ø")
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资源管理器中创建令牌,过了一会儿,它就会过期。 我找不到创建访问令牌的工作示例,任何人都可以帮忙吗?
答案 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/
中的完整示例