1

我正在将应用程序与 facebook 集成。我正在获取用户信息和 publish_stream 权限。用户登录后,用户可以直接从中搜索其他用户UIWebView。当有 accessToken 时,我能够这样做。使用它,我将其他用户的个人资料显示为当前用户。

storing in variable when user logs in for future purpose.

url =[NSString stringWithFormat:@"https://facebook.com/search/results.php?q=SEARCH_USER&type=user&access_token=%@",self.selectedMatch.realName,facebookAccessToken];

但是,现在由于不推荐使用访问令牌,因此存在accessTokenData. 但我无法将其显示为当前用户,它直接将用户带到 facebook 登录页面。任何人都知道我如何使用 facebook 的最新 SDK 来做到这一点?

我试过这个,但它显示facebook登录屏幕。

url =[NSString stringWithFormat:@"https://facebook.com/search/results.php?q=NAME&type=user&access_token=ACCESS_TOKEN"];
4

4 回答 4

1

accessTokenData 是 FBAccessTokenData 类型,并且有一个属性 accessToken,它是一个 NSString。就像你之前使用访问令牌一样使用它,我猜它应该可以工作:

url =[NSString stringWithFormat:@"https://facebook.com/search/results.php?q=NAME&type=user&access_token=%@", accessTokenData.accessToken];

以下是有关该主题的更多信息:Facebook:使用应用程序访问令牌进行 API 调用以发布

于 2013-07-10T16:07:35.063 回答
1

您现在必须登录 facebook 以请求有关帐户的私人信息,这已更改,因此您的应用程序无法在未经用户许可的情况下获取用户信息。所以你有一个主要用户

[FBSession activeSession]

并与该主要用户一起询问信息。比如他们的好友列表:

 FBRequest* friendsRequest = [FBRequest requestForMyFriends];

 [friendsRequest startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary* result, NSError *error) {

 }];

此代码默认使用与此示例中的会话对象关联的令牌数据

[[FBSession activeSession] accessTokenData]

要使用图形 api 访问任何随机人的 facebook 以查看公共数据,您可以使用以下代码执行此 操作/112845672063384

FBRequestConnection *newConnection = [[FBRequestConnection alloc] init];
FBRequest *request = [[FBRequest alloc] initWithSession:FBSession.activeSession
                                                      graphPath:@"112845672063384"];
[newConnection addRequest:request completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
   NSDictionary* facebookUserPublicInfo = (NSSDictionary*)result;
}];
[newConnection start]

我想我实际上从来没有在方法中使用访问令牌数据,它总是被认为是 activeSession 的数据,但是如果你做了访问令牌数据就是他们刚刚重命名的访问令牌,它可能带有其他元数据数据

于 2013-07-11T16:12:48.523 回答
1

Facebook 的工作方式已经改变。您在这里拥有所需的一切:https ://developers.facebook.com/ios/ 。

您想要的部分可能是这个:https ://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/show-friends/ 。

于 2013-07-12T00:07:06.247 回答
0

我已经通过将 Web 视图指定为这样的默认行为来完成。

[[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:
    ^(FBSession *session,FBSessionState state,NSError *error)
    {
        if(state == FBSessionStateOpen)
       {
        // code when login is successful.
       }
    }];

如果您使用 webview 让用户登录,那么您可以显示任何特定的登录用户。

于 2014-01-21T09:45:10.663 回答