Cocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-iOS編その1

Cocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-Android編その4の続き。
Twitterにログインするところまで。

Fabric のXcode用プラグインをインストール

fabricユーザー登録から、プラグインのインストールまでこのページが丁寧に説明してあって分かりやすいと思います。
すでにユーザ登録してある人は、そこは飛ばしてください。

プロジェクトにSDKを追加する

[iOS] Fabric 入門 #1 アカウント登録 & Twitter Kit を使ってログインする
今度はこのページを見ながら。ネット上の資産は有効活用しましょう。
Run Script Build Phaseについては、公式How to Add a Run Script Build Phaseで解説されています。
Run Scriptを追加した後に、以前NativeLauncher.hで宣言した関数が無いとビルドできないので、
NativeLauncher.mmに

#include "NativeLauncher.h"

void NativeLauncher::loginTwitter(){
    
};
std::string NativeLauncher::showTweet(){
    std::string tweet_text;
    return tweet_text;
};
std::vector<std::string> NativeLauncher::showUserTimeline(){
    std::vector<std::string> userTimeline_text;
    return userTimeline_text;
};
と空の関数を用意しておきます。

Twitterにログインする


AppDelegate.mに記述ところはCocosだとAppDelegateがcppファイルなので、NativeLauncher.mmのloginTwitter()に書きます。
TwitterLoginButtonもNativeLauncher.mmのloginTwitter()に書きますが、viewには追加しないので、
logInButton.center = self.view.center;
    [self.view addSubview:logInButton];
の部分は削っておきましょう。
最後に、[logInButton sendActionsForControlEvents:UIControlEventTouchUpInside];でloginButtonをプログラムからタッチイベントを発生させます。
あとはログインした時のログを表示させたりして全体としてはこんなかんじになります。
#include "NativeLauncher.h"
#import <Fabric/Fabric.h>
#import <TwitterKit/TwitterKit.h>


void NativeLauncher::loginTwitter(){
    [Fabric with:@[TwitterKit]];
    TWTRLogInButton *logInButton = [TWTRLogInButton
 buttonWithLogInCompletion:
 ^(TWTRSession *session, NSError *error) {
            if (session) {
               NSLog(@"signed in as %@", [session userName]);
            } else {
               NSLog(@"error: %@", [error localizedDescription]);
            }
    }];
    [logInButton sendActionsForControlEvents:UIControlEventTouchUpInside];
};
std::string NativeLauncher::showTweet(){
    std::string tweet_text;
    return tweet_text;
};
std::vector<std::string> NativeLauncher::showUserTimeline(){
    std::vector<std::string> userTimeline_text;
    return userTimeline_text;
};

Androidの時と同じように、好きなところからNativeLauncher::loginTwitter()を呼び出せば、ログイン出来るはずです。
iOSシミュレータだとSettingでTwitterのアカウントを登録してないと、エラーが出ます。
実機だとOSでログインしていない場合はWebViewでログイン出来るらしいのですが、実機でまだテストしていないので確認していません。

続き::Cocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-iOS編その2

コメント

このブログの人気の投稿

2次元配列のコピー::JavaScript

iframeの利点と欠点

chromyを実行するとエラー:"Failed to launch a browser"が出る