iPhoneアプリ開発 -mixiSDKを使ってmixi連携をしてみる(1)-

公開日: : 最終更新日:2014/04/20 iPhone, IT, Mac, mixi


 やりたいこと

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
 }

これで前段階は終了です。
ボイスにつぶやくところは違うエントリーに記述します。

広告

関連記事

no image

order byでハマったこと -order by、group byの処理順序-

CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 * 

記事を読む

no image

iPhoneアプリ開発 -利用するべきサービス-

iPhone(iOS)アプリ開発において使っているサービスを列挙。 この手のサービスがないと、開発中

記事を読む

no image

iPhoneアプリ開発 -背景画像をiPhone5対応してみた-

* やりたいこと iPhone5は今までと異なり高さが違います。 その結果、背景画像によっては良い感

記事を読む

NEC_0882

Facebookで名刺を作ってみた -Mooの名刺作成サービス-

1ヶ月~半月くらい前に話題になっていたMooの名刺作成サービス。 話題になっていた時期に注文した名

記事を読む

no image

CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある

記事を読む

no image

iPhoneアプリ開発 −タッチで線を描く(2)/枠線を描く−

* 前回までのお話 * やりたいこと 今回やりたいことは以下の2点。 -(1) 画面をタッチして

記事を読む

no image

str_padとsprintfの速度

PHPで同じことが出来る「str_pad」と「sprintf」。 今まではsprintfを使う機会

記事を読む

no image

jQuery Mobileのバージョンアップではまった – pushStateの存在 –

jQuery Mobileをつかってスマートフォン対応をしたときにはまったこと。 * 前提

記事を読む

Jenkins + DeployGate(2) -DeployGateにアプリをアップ!-

DeployGateを使ってますか? 継続的にDeployってますか? TestFlightの

記事を読む

iPhoneアプリ開発 芳名帳アプリ作成(2) -記帳画面作成-

* 今までの流れ - * 画面構成 今回の芳名帳アプリは以下の画面で構成しています。 -

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑