iOSでSocial.frameworkを利用することで簡単にTwitterとの連携ができるようになりましたが、逆に不都合になる点があります。
それは、OS側で認証をするとAccessTokenをアプリ側で取得がそのままではできないということです。
それで何が困るかというと,Twitpicなどその他のサービスにおいてTokenを必要とする場合に困ったりします。
ただし、それを解決するためにちゃんとTwitterにAPIが用意されております
Reverse Auth
https://dev.twitter.com/docs/ios/using-reverse-auth
これを利用すれば後からTokenの取得が可能です。
実際の利用はSTTwitterというライブラリを利用すると簡単に実装ができます。
https://github.com/nst/STTwitter
STTwitterは非常に簡単にTwitterを扱えるのでその他の場合でも利用するとよいかと思います。
STTwitterAPI *twitter = [STTwitterAPI twitterAPIWithOAuthConsumerName:nil
consumerKey:@""
consumerSecret:@""];
[twitter postReverseOAuthTokenRequest:^(NSString *authenticationHeader) {
STTwitterAPI *twitterAPIOS = [STTwitterAPI twitterAPIOSWithFirstAccount];
[twitterAPIOS verifyCredentialsWithSuccessBlock:^(NSString *username) {
[twitterAPIOS postReverseAuthAccessTokenWithAuthenticationHeader:authenticationHeader
successBlock:^(NSString *oAuthToken,
NSString *oAuthTokenSecret,
NSString *userID,
NSString *screenName) {
self.accessToken = oAuthToken;
self.accessTokenSecret = oAuthTokenSecret;
NSLog(@"Token %@ secret %@",oAuthToken,oAuthTokenSecret);
} errorBlock:^(NSError *error) {
NSLog(@"error %@",[error description]);
}];
} errorBlock:^(NSError *error) {
NSLog(@"error %@",[error description]);
}];
} errorBlock:^(NSError *error) {
NSLog(@"error %@",[error description]);
}];
ちょっと見づらいですがこのように、tokenとsecretを取得することができます。
同じように困った場合はこの方法を利用するとよいでしょう。