59
59

More than 5 years have passed since last update.

iOSのSocial.frameworkでTwitterを利用した場合でもAccessTokenを取得する方法

Last updated at Posted at 2014-02-17

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を取得することができます。

同じように困った場合はこの方法を利用するとよいでしょう。

59
59
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
59