ios fb graph api用app或usertoken搜索地方?

时间:2013-06-27 12:14:11

标签: iphone ios facebook-graph-api access-token facebook-ios-sdk

我的应用曾经使用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]; 

这不再适用了。我检查了文档并发现它可以附加一个app访问令牌。这适用于ib(版本3.5.3)的fb sdk中的以下查询:

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 developer docs州:

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

我已经使用了app访问令牌,因此它应该可以工作,但事实并非如此。

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

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

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

1 个答案:

答案 0 :(得分:0)

Facebook图形API正在发生变化,如果您知道图片ID

,现在有更智能的方式来获取图片

您可以使用此网址重定向到所需分辨率的图片网址:

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

其中%llu是图片ID的位置,%@是fb标记

所以你的fql请求可能会更小,你可以根据你需要的分辨率动态编写url