Facebook Graph API Explorer 和 iOS SDK API 调用返回不同的结果
Posted
技术标签:
【中文标题】Facebook Graph API Explorer 和 iOS SDK API 调用返回不同的结果【英文标题】:Facebook Graph API Explorer and iOS SDK API call return different results 【发布时间】:2013-10-24 09:30:45 【问题描述】:Graph API Explorer 总是返回一堆结果(我和我的朋友正在参加的活动),但 SDK 查询总是返回一个空集。
我在一个混合移动应用程序上使用 ios Facebook SDK(Phonegap 和 Facebook 插件 - 这个插件产生与本机 SDK 的连接)。
两个地方都是同一个FQL查询,这里是我的js代码:
FB.api('/fql?q=' +
encodeURIComponent([
"SELECT name, venue, location, start_time, eid FROM event",
"WHERE eid IN (",
"SELECT eid FROM event_member",
"WHERE (uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR uid = me())",
")",
"AND start_time > now()",
"LIMIT 50"
].join(" ")),
function(response)
if (!response || response.error)
console.log("Error fetching data.");
else
events = response.data;
console.log(events);
displayEvents(events);
);
我的 facebook 应用程序需要 user_events
和 friend_events
权限(我尝试添加 user_friends 权限,但在我保存并刷新后 - 它总是从列表中消失......也许这些是默认提供的,而不是需要指定吗?)。
问题出在哪里?
谢谢。
【问题讨论】:
你试过删除encodeURIComponent
查询在 URL 中 - 它必须被编码。无论如何,为了进行完整性检查,我确实尝试过,当然,该服务没有获得完整的查询(第一个空格之后的所有内容)并返回“查询意外结束”。
【参考方案1】:
问题是 Facebook 的客户端 SDK 应该请求用户登录的权限。
权限应在云端设置,然后在您的客户端登录时请求。这是登录:
FB.login(callback, scope: 'user_events,friends_events');
我个人认为这是令人困惑的(尤其是命名参数“范围”),但这是规则。
【讨论】:
以上是关于Facebook Graph API Explorer 和 iOS SDK API 调用返回不同的结果的主要内容,如果未能解决你的问题,请参考以下文章
PHP中的Facebook Graph API出现不一致的错误 - 无法连接到graph.facebook.com端口443:连接超时