2013-07-12 25 views
0

我正在嘗試添加一項功能,以允許用戶通過Facebook/Twitter/Google +登錄並在我的應用程序中留下評論。我也想顯示其他有留下評論的用戶的頭像。代表應用程序的TWRequest調用?

如果用戶以前使用Twitter登錄過,我可以使用TWRequest使用[request setAccount:self.account]來調用API,但如果不是,請求返回"Bad Authentication data"

我在Twitter上創建了一個應用程序,我如何在TWRequest中使用消費者密鑰和消費者密鑰,還是那些僅用於OAuth的用戶?

回答

2

使用Application-only authenticationSTTwitter的幫助下解決了我的問題。

apiWrapper = [STTwitterAPIWrapper 
       twitterAPIApplicationOnlyWithConsumerKey:@"..." 
       consumerSecret:@"..."]; 


[apiWrapper verifyCredentialsWithSuccessBlock:^(NSString *token) { 
    DDLogInfo(@"Twitter App logged in with token: %@",token); 
} errorBlock:^(NSError *error) { 
    DDLogCError(@"Twitter verify credentials error %@",error); 
}]; 
+0

的'verifyCredentialsWithSuccessBlock:'回調參數是用戶名,而不是OAuth憑證 – nst

2

考慮使用reverse auth.

反向驗證最常見的用例。讓用戶使用他們的OS X或iOS Twitter帳戶註冊/登錄到遠程服務。

iOS/OSX  Twitter  Server 
|------------>|    | reverse auth. 
|< - - - - - -|    | access tokens 
|    |    | 
|-------------------------->| access tokens 
|    | 
|    |<------------| access Twitter on user's behalf 
|    | - - - - - ->| 

下面是如何使用反向認證與STTwitter

STTwitterAPI *twitter = [STTwitterAPI twitterAPIWithOAuthConsumerName:nil 
                  consumerKey:@"CONSUMER_KEY" 
                 consumerSecret:@"CONSUMER_SECRET"]; 

[twitter postReverseOAuthTokenRequest:^(NSString *authenticationHeader) { 

    STTwitterAPI *twitterAPIOS = [STTwitterAPI twitterAPIOSWithFirstAccount]; 

    [twitterAPIOS verifyCredentialsWithSuccessBlock:^(NSString *username) { 

     [twitterAPIOS postReverseAuthAccessTokenWithAuthenticationHeader:authenticationHeader 
                  successBlock:^(NSString *oAuthToken, 
                      NSString *oAuthTokenSecret, 
                      NSString *userID, 
                      NSString *screenName) { 

                   // use the tokens... 

                  } errorBlock:^(NSError *error) { 
                   // ... 
                  }]; 

    } errorBlock:^(NSError *error) { 
     // ... 
    }]; 

} errorBlock:^(NSError *error) { 
    // ... 
}]; 
+1

我不想讓用戶登錄。我只想下載Twitter用戶的頭像,即使當前用戶決定使用Facebook或Google而不是Twitter來登錄,但由於我無法對API進行未經身份驗證的調用,因此我只能使用僅限應用程序AUTH。 –

+0

@nst非常感謝!無法在任何地方找到文檔來檢索OAuth令牌,您讓我的一天成爲先生 –

相關問題