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

Facebookの仕組みが変わりました。必要なものはすべてここにあります: https://developers.facebook.com/ios/

あなたが望む部分はおそらくこれです: https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/show-friends/ .

于 2013-07-12T00:07:06.247 に答える
1

accessTokenData はタイプ FBAccessTokenData であり、NSString であるプロパティ accessToken を持っています。以前にアクセストークンを使用したのと同じようにこれを使用するだけで、うまくいくはずです:

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

于 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 にアクセスして公開データを表示するには、例として facebook の創設者である Mark Zuckerberg の 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のものであると想定されていましたが、アクセストークンデータをアクセストークンにした場合、名前が変更されただけで、他のメタを運ぶ可能性がありますデータ

于 2013-07-11T16:12:48.523 に答える
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 に答える