在uiwebview中搜索用户作为facebook中的登录用户

时间:2013-07-02 08:51:38

标签: iphone ios facebook facebook-graph-api

我正在将应用程序与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 个答案:

答案 0 :(得分:1)

accessTokenData的类型为FBAccessTokenData,并且具有属性accessToken,该属性是NSString。只是在你之前使用访问令牌时使用它,它应该可以工作我想:

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

以下是有关该主题的更多信息:Facebook: Making API Calls to Publish with an App Access Token

答案 1 :(得分:1)

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

[FBSession activeSession]

并向该主要用户询问信息。比如他们的朋友名单:

 FBRequest* friendsRequest = [FBRequest requestForMyFriends];

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

 }];

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

[[FBSession activeSession] accessTokenData]

使用图形api访问任何随机人的Facebook以查看公共数据,你可以通过下面的代码使用Mark Zuckerberg的facebook作为示例的facebook的创始人来做到这一点 https://www.facebook.com/pages/Mark-Zuckerberg/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的数据,但是如果你做访问令牌数据是访问令牌,他们只是重命名它,它可能携带其他元数据

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

我已经完成了将Web视图指定为默认行为。

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

如果您使用webview进行用户登录,则可以显示任何特定的登录用户。

相关问题