iPhoneアプリ開発 -mixiSDKを使ってmixi連携をしてみる(1)-
やりたいこと
iPhoneアプリでmixiと連携し、mixiボイスなどに文字を投稿する。
※単にmixiのAPIを使いたいだけです。
今回は、ボイスをつぶやく前の段階である「ユーザーにAPI利用のための認可」をおこなってもらうところまでです。
公式情報
mixiの公式情報は以下です。
正直、Facebookなどと比べると情報量は微妙ですし使い勝手が悪いです。
(1) SDKダウンロード
以下からSDKをダウンロードします。
最新版は、1.4.5(date 2012-07-26)になります。
(2) mixiで登録
以下にログインし、「mixiGraph API」で登録します。
入力をする際にリダイレクトURLの値に気をつけてください。
参考:サービス管理 << mixi Developer Center (ミクシィ デベロッパーセンター)
※入力したページが存在しなければ、連携時に反応しなくなります。
登録後の以下の値は必要なのでメモしておきます。
- Consumer Key
- Consumer Secret
(3) SDKの追加
(1)でダウンロードしたSDKをプロジェクトに追加します。
また、以下のフレームワークが必要なので追加します。
- CFNetwork.framework
- Security.framework
- SystemConfiguration.framework
参考:プロジェクトの作成 << mixi Developer Center (ミクシィ デベロッパーセンター)
起動URIスキームの説明と追加の仕方については以下が参考になります。
<注意点>
mixiSDKはARC非対応なので、ARC対応のプロジェクトであればARCを無効にする必要があります。
その場合、プロジェクトの「TARGETS」「Build Phases」の「Compile Sources」でmixiSDKのソースに対して以下を追加します。
-fno-objc-arc
※該当ソースをダブルクリックすれば、入力欄が表示されるので上記を入力します。
(4) 初期化
まず以下のヘッダファイルをインポートします。
#import "MixiSDK.h"
初期化のために以下を記述します。
記述箇所は色々あるかと思いますが、AppDelegateに書くか利用するViewControllerのどこかしらに書くのが良いかと思います。
Mixi *mixi = [[Mixi sharedMixi] setupWithType:kMixiApiTypeSelectorMixiApp clientId:@"Consumer Keyを入力" secret:@"Consumer Secretを入力"]; [mixi restore];
(5) 認可
公式アプリを利用する方法とSDK単体を利用する方法があります。
今回は、公式アプリは利用しない方向でいきます。
※公式アプリだと別途メソッドが必要になります。
利用するViewControllerのviewDidAppearメソッドに以下のように書きます。
- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; Mixi *mixi = [Mixi sharedMixi]; mixi.authorizer.parentViewController = [self navigationController]; }
そして認可をおこなうタイミングの箇所で以下を記述します。
例えば、何かのボタン押下時とか。
self.mixi.authorizer.delegate = self; [(id)self.mixi.authorizer shouldUseSDKAuthorizer]; //(1) [self.mixi authorize:@"r_profile", @"w_voice", nil]; //(2)
(1)の説明
この行を追加することによりSDK単体での認可に固定しています。
つまり公式アプリを入れていても公式アプリでの認可はおこないません。
(2)の説明
今回は、プロフィールの読み込み(r_profile)とボイスの書き込み(w_voice)がおこないたかったので2つ設定しています。
これで、mixiの画面が表示され、「利用同意」画面になり「同意する」「同意しない」のボタンが表示されます。
ボタンを押下した後は以下のメソッドのいずれかが呼ばれます。
- (void)authorizer:(MixiSDKAuthorizer*)authorizer didSuccessWithEndpoint:(NSString*)endpoint { //成功時 } - (void)authorizer:(MixiSDKAuthorizer*)authorizer didCancelWithEndpoint:(NSString*)endpoint { //キャンセル時 } - (void)authorizer:(MixiSDKAuthorizer*)authorizer authorizer:didFailWithEndpoint:(NSString*)error { //失敗時 }
ちなみに、認可が完了すると結果は保存されているので、自ら何かしら処理を剃る必要はありません。
認可状態は以下のメソッド(isAuthorized)を使えばわかります。
if([mixi isAuthorized]) { //OK }
これで前段階は終了です。
ボイスにつぶやくところは違うエントリーに記述します。
広告
関連記事
-
iPhoneアプリを開発してての疑問 -教えてエライ人!-
MacでiPhoneアプリを開発してて疑問に思ったのの解決してないことを列挙。 知識不足をさらけ出し
-
ヘルプ作成で思ったWebサービスの3つの心得 -短文の教え-
最近ヘルプを作って思った3つのこと。 * 1文に複数の内容を書かない 1文に複数の内容を書いてい
-
Jenkins + iPhoneアプリ(3) -ipaファイルをTestFlightにアップロード-
* これまで - -[http://pplace.jp/2013/01/1192/:title=
-
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –
* やりたいこと macのターミナルでgitをいじっていると -今のブランチってなんだっけ? -g
-
Google Appsで独自ドメインメールの利用
独自ドメインでメアドを持ちたかったのでGoogle Appsを利用してみました。 その各種設定の覚
-
iPhoneアプリ開発 -同じ画像を2度以上画像処理した際に起こるエラーの対処-
* 起きた現象 (1) UIImageのデータを元にピクセルの値を色々といじって画像処理。 (2)
-
github-flowを使っての開発(3) -1つのプロジェクトを複数人で開発-
今まで2回ほどgithub-flowをもとにした開発の流れを書きました。 今回は、複数人で開発をする
-
CakePHP2系にTwigを導入
CakePHP2系でも慣れているSmartyを使おうと思ったものの、良いプラグインが見つからず断念。
-
さくらのVPSでJenkins -執事さんとご対面-
さくらのVPSを利用している方は多いかと思います。 私も、自分で遊ぶ用(開発用)として借りてみまし
-
WordPressプラグイン「WP Hatena Notation」にPullRequestを投げた話
WordPressではてな記法が利用できる「WP Hatena Notation」を重宝しています。