0

从本周开始,我的 iOS 应用程序在访问 FB(通过 iOS FB SDK)时出现问题。出现以下错误:

2013-06-18 15:44:16.756 foo-coffee[2441:907] Error: HTTP status code: 500
2013-06-18 15:44:16.761 foo-coffee[2441:907] Errrror: Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x21051e70 {com.facebook.sdk:ParsedJSONResponseKey={
body =     {
    error =         {
        code = 1;
        message = "An unknown error has occurred.";
        type = OAuthException;
    };
};
code = 500;
}, com.facebook.sdk:HTTPStatusCode=500}, (null)

错误发生在以下函数中:

- (void)getFbFields:(CLLocationDegrees)lat longitude:(CLLocationDegrees)lng {
NSString *fbquery =  [NSString stringWithFormat:@"search?type=place&center=%f,%f&distance=3000&fields=name,cover", lat, lng];
[FBRequestConnection
 startWithGraphPath:fbquery
 completionHandler:^(FBRequestConnection *connection,
                     id result,
                     NSError *error) {
     if (!error) {
         [self readFbResponse:result];
     } else {
         NSLog(@"Errrror: %@, %@", error, result); 
     }
 }];
}

错误的可能性可能是 FB“2013 年 7 月 10 日迁移”。在这里,我的开发人员帐户中有消息:没有访问令牌的图形搜索端点。

在2013 年 7 月 10 日的路线图中,迁移说明:

Graph API 搜索更改 所有搜索 Graph API 调用都需要用户访问令牌,但 Posts、Places 和 Pages 除外。应用访问令牌也可用于 Post search Graph API 调用。地点和页面搜索图 API 调用仍需要应用访问令牌。将不再支持搜索应用程序。

所以看来我需要“应用程序访问令牌”。如何最好地集成“应用访问令牌”?作为搜索 URL 中的参数还是以其他方式?

4

1 回答 1

0

您需要为自己获取一个访问令牌并通过 URL 传递它。

我们获取此类访问令牌的 C# 代码如下:

JsonObject response = (JsonObject) client.Get("oauth/access_token", new
{
    client_id = __facebookAppID,
    client_secret = __facebookAppSecret,
    grant_type = "client_credentials"
});

string accessToken = response["access_token"] as string;

获得该访问令牌后,我们只需将其添加到 URL 中,例如:

path += "&access_token=" + accessToken;
于 2013-07-29T14:28:26.950 回答