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_eventsfriend_events 权限(我尝试添加 user_friends 权限,但在我保存并刷新后 - 它总是从列表中消失......也许这些是默认提供的,而不是需要指定吗?)。

问题出在哪里?

谢谢。

【问题讨论】:

你试过删除encodeURIComponent 查询在 URL 中 - 它必须被编码。无论如何,为了进行完整性检查,我确实尝试过,当然,该服务没有获得完整的查询(第一个空格之后的所有内容)并返回“查询意外结束”。 【参考方案1】:

问题是 Facebook 的客户端 SDK 应该请求用户登录的权限。

权限应在云端设置,然后在您的客户端登录时请求。这是登录:

FB.login(callback, scope: 'user_events,friends_events');

我个人认为这是令人困惑的(尤其是命名参数“范围”),但这是规则。

【讨论】:

以上是关于Facebook Graph API Explorer 和 iOS SDK API 调用返回不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

使用 graph Api 获取 Facebook 页面事件

PHP中的Facebook Graph API出现不一致的错误 - 无法连接到graph.facebook.com端口443:连接超时

Facebook Graph API获取公共视频信息

Facebook 分享视频 Graph API

Android Facebook Graph API

facebook graph api - 发布多张照片