0

我的应用程序曾经使用 fb sdk for ios(版本 3.1)具有以下 fb api 图查询(原始查询):

NSString *fbquery =  [NSString stringWithFormat:@"search?type=place&center=48.8567,2.3508&distance=1000&limit=40&fields=picture.width(200),cover]; 

这不再起作用了。我检查了文档并发现它可以与附加应用程序访问令牌一起使用。这适用于 fb sdk for ios(版本 3.5.3)中的以下查询:

NSString *fbquery =  [NSString stringWithFormat:@"search?type=place&center=48.8567,2.3508&distance=1000&limit=40&fields=picture,cover&access_token=%@", appDelegate.session.accessTokenData.accessToken]; 

查询结果:

{
    data =     (
                {
            id = 165207683494457;
            picture =             {
                data =                 {
                    "is_silhouette" = 0;
                    url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276836_165207683494457_49288222_q.jpg";
                };
            };
        },
                {
            id = 151161104922563;
            ...
            ...

但是当我尝试指定我想要检索的图片宽度时,就像在原始查询中一样:picture.width(200)然后我得到一个错误:

  {com.facebook.sdk:ParsedJSONResponseKey={
    body =     {
        error =         {
            code = 1;
            message = "An unknown error has occurred.";
            type = OAuthException;
        };
    };
    code = 500;
   }, com.facebook.sdk:HTTPStatusCode=500}

fb 开发人员文档状态:

  • 页面地点对象的搜索需要应用访问令牌
  • 所有其他端点都需要用户访问令牌。

我已经使用了应用程序访问令牌,所以它应该可以工作,但它没有。

我应该怎么办?问题出在哪里?

我的建议是尝试使用用户访问令牌,但是如何从appDelegate.session? 在那里找不到用户访问令牌。

我现在使用(如上所述,3.5.3 版中的 ios 的 fb sdk。

4

1 回答 1

0

Facebook 图形 API 正在发生变化,如果您知道图片 ID,现在有一种更智能的方式来获取图片

您可以使用此 url 重定向到具有所需分辨率的图像的 url:

@"https://graph.facebook.com/%llu/picture?width=256&height=256&access_token=%@"

其中 %llu 是图片 id 的位置,%@ 是 fb 令牌

因此您的 fql 请求可能会更小,您可以根据您需要的分辨率动态组合 url

于 2013-06-27T12:19:28.433 回答