我正在尝试使用存储的长期访问令牌,但在2小时后,我从图API中得到以下错误.我已经写了一些代码,将用户发送至Facebook获取可用于访问令牌,这工作得很好,除了这发生在每个后续页面请求予以更换新代码,Facebook的继续我的访问令牌与下面的错误无效,尽管他们的服务器返回了访问令牌.
Error validating access token: Session has expired at unix time 1338300000. The current unix time is 1338369365.
Run Code Online (Sandbox Code Playgroud)
完整的测试页面示例如下.由于显而易见的原因省略了我的钥匙.击中页面,登录,然后将其搁置了几个小时,再次命中页面(你会得到重定向到Facebook和回用在URL中的代码),重新加载页面,它会不断地重定向到Facebook和回虽然我告诉它使用它刚刚为所述代码返回的访问令牌.
<?php
require 'facebook.php';
$app_id = APP_ID;
$app_secret = APP_SERCRET;
$my_url = URL;
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret
));
// known valid access token stored in a database
$access_token = isset($_COOKIE["FB_LONG_AC_TOKEN"]) ? $_COOKIE["FB_LONG_AC_TOKEN"] : false;
$code = $_REQUEST["code"];
// If we get a code, it means that we have re-authed the user
//and can get a valid …Run Code Online (Sandbox Code Playgroud) Facebook页面:http://facebook.com/getwellgabby/events/目前有8个活动.我可以看到他们.非管理员可以看到它们并可以加入它们.
但是,当我通过Graph API或FQL进行调用时,只返回4个未来事件.结果可以在这里看到:http://getwellgabby.org/events? raw = 1(滚动到底部以获得原始响应.)
FQL查询是:
SELECT eid, name, start_time, end_time, location, venue, description
FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = 213367312037345 ) AND end_time > now()
ORDER BY end_time asc
Run Code Online (Sandbox Code Playgroud)
检查通过Graph API返回的各个事件ID显示这些事件之间没有区别.但是,通过前端编辑它们时,它们会显示在不同的对话框中.
随后是两个样本事件.两者都是由同一页面管理员创建的.相隔24小时.第一个事件通过API/FQL调用正确显示.第二个没有.从前端开始,第二个事件的显示方式与第一个事件不同.
使用具有"create_event"特权的访问令牌,使用FB Graph API Expplorer工具返回以下数据.
报告正确:
{
"id": "344143808978921",
"owner": {
"name": "Get Well Gabby",
"category": "Non-profit organization",
"id": "213367312037345"
},
"name": "Get Well Gabby Day With The Reading Phillies",
"description": "Please join …Run Code Online (Sandbox Code Playgroud) 我想在Facebook上分享我的网站链接.页面在我的浏览器中正确显示,但是当我通过API或前端共享它时,它不显示.当我将我的URL放入Graph API调试器时,它给出了一个错误"错误解析URL:解析输入URL时出错,没有数据被删除".
可能有什么不对?
我有一个应用程序(Facebook画布应用程序,Facebook在iframe中显示应用程序)
当用户点击链接时,我希望能够刷新页面.
用于刷新页面的代码如下:
window.location.reload(true);
Run Code Online (Sandbox Code Playgroud)
使用firefox这可以正常工作,它只刷新iframe中的当前页面.所以我很高兴.
使用IE浏览器,整个页面正在刷新,导致用户进入应用程序的开头.
我怎么能避免这种情况?
我只想刷新当前页面而不是当前网址.
apps.facebook.com/foo/
Run Code Online (Sandbox Code Playgroud)
是应用程序URL,在链接的URL用户点击内转到页面,然后在该页面内我需要刷新该页面以更新一些计数器.但是当我刷新整个请求时apps.facebook.com/foo/
有任何想法吗?