我正在尝试添加一项功能,允许用户通过Facebook / Twitter / Google +登录,并在我的应用中留言。我还想显示已留下评论的其他用户的头像。
如果用户之前已使用Twitter登录,我可以使用TWRequest使用[request setAccount:self.account]
来调用API,但如果没有,则请求返回"Bad Authentication data"
。
我在Twitter上创建了一个应用程序,我如何在TWRequest中使用消费者密钥和消费者密钥,或者是那些仅用于OAuth的用户?
答案 0 :(得分:2)
在Application-only authentication的帮助下使用STTwitter解决了我的问题。
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);
}];
答案 1 :(得分: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) {
// ...
}];