36

iOS初心者はこちら 次のコードがあります。

[facebook authorize:nil delegate:self];
NSString *string1=[facebook accessToken];
NSLog(string1);

ログには次のように表示されます。miFOG1WS_7DL88g6d95Uxmzz7GCShsWx_FHuvZkmW0E.eyJpdiI6IjNZZkFBY1c5ZnBaMGEzOWM2RzNKbEEifQ.LNjl06lsOQCO9ArVARqff3Ur2XQHku3CMHDBKkpGg351EB33LGxVv96Hh5R860KDJL0cLq8QezSW0GovYxnhUucOwxlITV364sVKDXIzC3bAn9P_74r2Axl1SgOaTyMMkQ_aSQ2OWh-8d3Zn9BDt3pXVWzBLJ9I4XAosnw0GjuE

これは、アクセス トークンとしては長すぎるようです。長さはわずか40文字であると読みました。私は何を間違っていますか?

4

10 に答える 10

8

Facebook SDK を使用している場合は、FBSessionオブジェクトを使用して accessToken を取得およびアクセスできます。ユーザーがアプリに対して認証され、アクティブなセッションが使用されている場合:

NSString * accessToken = [[FBSession activeSession] accessToken];

アクセストークンを取得します。

それは私のために働いた。

于 2012-11-13T12:55:26.637 に答える
4

SDK 4.0 の場合

NSString *fbAccessToken = [[FBSDKAccessToken currentAccessToken] tokenString];
于 2015-04-01T15:40:30.913 に答える
4

Swift 1.2 および FB SDK 4.1 の場合:

var fbAccessToken = FBSDKAccessToken.currentAccessToken().tokenString
于 2015-05-17T22:46:03.963 に答える
4

デリゲート メソッドを使用できます。

- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate 

詳細については、次の質問を参照してください: Facebook アクセス トークン

于 2011-05-16T11:07:27.863 に答える
2
- (IBAction)facebookClick:(id)sender {

    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];

     [login logOut];

    login = [[FBSDKLoginManager alloc] init];


    login.loginBehavior = FBSDKLoginBehaviorWeb;
    [login logInWithReadPermissions:@[@"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if (error)
        {
                 NSLog(@"Process error");
             //   [login logOut];
         } else if (result.isCancelled) {
             NSLog(@"Cancelled");
            // [login logOut];
         } else {
             NSLog(@"Logged in");
             [self getUserInformation];
         }
     }];
}
于 2016-06-18T21:44:33.973 に答える
1

ACAccountStore から access_token を取得するには、以下のコードを確認してください。

ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType =  [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary *FBOptions = [NSDictionary dictionaryWithObjectsAndKeys:FACEBOOK_APP_ID, ACFacebookAppIdKey,@[@"email"],ACFacebookPermissionsKey, nil];

[accountStore requestAccessToAccountsWithType:accountType options:FBOptions completion:
 ^(BOOL granted, NSError *error) {
     if (granted) {

         NSArray *facebookAccounts = [accountStore accountsWithAccountType:accountType];
         FBAccount = [facebookAccounts firstObject];
         NSLog(@"token :%@",[[FBAccount credential] oauthToken]);

     } else {
         //Error
         NSLog(@"error getting permission %@",error);
         if([error code]== ACErrorAccountNotFound){
             NSLog(@"Account not found. Please setup your account in settings app"); 
         }
         else {
             NSLog(@"Account access denied");
         }

     }
 }];
于 2016-04-13T12:56:44.110 に答える
0

SDK 3.2.1 で swift を使用する必要がある場合:

let token = FBSession.activeSession().accessTokenData.accessToken
于 2014-12-06T08:48:59.640 に答える