TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | Custom |
ReleasedLast Release | Dec 2014 |
Maintained by Unclaimed.
Depends on: | |
Reachability | >= 0 |
SBJson | >= 0 |
SFHFKeychainUtils | >= 0 |
mixi API SDK for iOSは開発者の方がiOSネイティブのmixiアプリをできる限り簡単に開発することができるように開発されました。
mixi API SDK for iOSの特徴は、以下の通りです。
本SDKにてサポートするiOS端末は以下の通りです。
**1 iPadについては、対応未定
**2 Communication Feedについては、今後提供予定
**3 基本的に提供されているすべての Graph API が利用可能です。
なお、Geolocation APIについてはTouch版/モバイル版と異なり、弊社への許諾なしに利用することが可能です。
mixi API SDK for iOS を利用するには、以下のファイルをダウンロードしてください。 ダウンロードすると、mixi API SDK for iOS の利用規約に同意したものと見なされます。
package | version | size | date |
---|---|---|---|
mixiIOSSDK-1.5.1.zip | v1.5.1 | 610KB | 2013-09-12 |
v1.5.0 2013-09-12
v1.4.9 2013-01-07
v1.4.8 2012-10-26
v1.4.7 2012-10-11
v1.4.6 2012-09-21
v1.4.5 2012-07-26
v1.4.4 2012-07-13
v1.4.3 2012-06-20
v1.4.2 2012-06-20
v1.4.1 2012-06-19
v1.4.0 2012-06-14
v1.3.6 2012-04-06
v1.3.5 2011-04-02
v1.3.4 2012-03-28
v1.3.3 2012-03-15
v1.3.2 2012-03-01
v1.3.1 2012-02-21
v1.3 2012-02-13
v1.2.1 2011-12-28
v1.2 2011-10-31
v1.1 2011-09-30
v1.0 2011-09-20
本SDKを用いてiOSアプリを開発するための手順を説明します。
SDKを利用するには、あらかじめ Partner Dashboard にてアプリケーションが登録されている必要があります。まず、Partner Dashboard の mixiアプリ登録ページにて登録を行なってください。その際、対応デバイスの項目で「スマートフォンに対応(iOS版)」にチェックをすることでSDKが利用可能になります。
SDKを利用するには、あらかじめ Partner Dashboard にてアプリケーションが登録されている必要があります。まず、Partner Dashboard の mixi Graph APIのサービス登録ページにてアプリケーションを登録をしてください。
その際、"起動URIスキーム"を以下を参考に登録してください。
ユーザがmixiサイト上のアプリケーション一覧やフィードをクリックした際に、WebブラウザからiOSアプリケーションが起動されることになります。この時に利用されるのが、起動URIスキームです。 初期値は以下の値に設定されています。
この起動URIスキームのの部分は変更可能です。できるだけ変更されることをお勧めします。変更を行う場合は、Partner Dashboardのアプリ設定ページから変更してください。 この起動URIスキームを実際にアプリケーションが受け取るためには、アプリケーションの Info.plist に適切な値を設定する必要があります。
SDK(mixiIOSSDK-[ver].zip)をダウンロードして展開し、lib/MixiSDKをプロジェクトのソースディレクトリに配置します。
通常のiOSプロジェクト作成手順に従ってプロジェクトを作成します。
mixi API SDK for iOSは次のフレームワークを必要とします。
Partner Dashboardに登録した起動URIスキームをプロジェクトに追加します。
これで開発を始める準備は整いました。次からは、いよいよAPIの利用方法を説明していきます。
mixi API SDK for iOS を利用したアプリケーションを開発する際のコードの記述方法について説明します。
SDKを利用する場合は次のヘッダファイルをインポートしてください。
#import "MixiSDK.h"
mixi APIの呼び出しに使用するMixiクラスはシングルトンクラスです。インスタンスは次のようにして取得できます。
[Mixi sharedMixi]
ただし、APIを実行する前に一度シングルトンオブジェクトを初期化しておく必要があります。例えばGraph APIを使用する場合、
UIApplicationDelegate#application:didFinishLaunchingWithOptions:
メソッド内で次のように記述するといいでしょう。(全ての引数はアプリケーションの設定に合わせて変更してください)
Mixi *mixi = [[Mixi sharedMixi] setupWithType:kMixiApiTypeSelectorGraphApi
clientId:@"ab12c345de6789f12345"
secret:@"a1b2c3456d789ef0123ghi4567jklmn89op01qrs"
redirectUrl:@"mixi-connect://success"];
[mixi restore];
[mixi reportOncePerDay];
mixiアプリの場合、 redirectUrl は不要です。
Mixi *mixi = [[Mixi sharedMixi] setupWithType:kMixiApiTypeSelectorMixiApp
clientId:@"ab12c345de6789f12345"
secret:@"a1b2c3456d789ef0123ghi4567jklmn89op01qrs"];
[mixi restore];
[mixi reportOncePerDay];
なお、上記のMixi#reportOncePerDayはアプリの起動をmixiに通知するものです。 このコードの追記は任意ですが、サービスの改善のために協力していただけると幸いです。 アプリケーションの情報は一切送信されません。
mixiアプリのAPIを利用するためには、ユーザにAPI利用のための認可を行なってもらう必要があります。そのための画面を表示するのが authorize: メソッドです。
[mixi authorize:@"r_profile", @"w_diary", nil];
このメソッドを呼び出すことで、ユーザーの認可を促す画面が表示されます。
デフォルトではmixi公式iPhoneアプリ(以下、公式アプリ)の有無によって認可画面の表示に異なるオブジェクトが利用されるため、公式アプリを使用した認可、およびSDK単体での認可に対応した2つの処理を記述してください。
端末に公式アプリがインストールされている場合は、認可/認可解除は公式アプリを利用して行われます。 公式アプリを利用して認可するとログイン情報が公式アプリと共有されるため、公式アプリですでにログイン済みであればユーザーIDとパスワードの入力を省略できます。
公式アプリから認可結果(アクセストークンなど)を受け取るために
UIApplicationDelegate#application:openURL:sourceApplication:annotation:
メソッドに次のような処理を追加してください。
NSError *error = nil;
NSString *apiType = [[Mixi sharedMixi] application:application openURL:url sourceApplication:sourceApplication annotation:annotation error:&error];
if (error) {
// エラーが発生しました
}
else if ([apiType isEqualToString:kMixiAppApiTypeToken]) {
// 認可処理に成功しました
}
else if ([apiType isEqualToString:kMixiAppApiTypeRevoke]) {
// 認可解除処理に成功しました
}
else if ([apiType isEqualToString:kMixiAppApiTypeReceiveRequest]) {
// リクエストAPIによるリクエスト受け取り
}
SDKの持つウェブビューコントローラを使用して認可画面を表示するには、そのビューコントローラの親になるビューコントローラを設定します。
APIを呼び出すビューコントローラのUIViewController#viewDidAppear:に次のようなコードを追加してください。(MixiAuthorizer#setParentViewControllerに設定する値は適宜変更してください)
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
Mixi *mixi = [Mixi sharedMixi];
mixi.authorizer.parentViewController = [self navigationController];
}
認可が完了するとその結果はSDK内に保持され、事前設定されたparentViewControllerに処理が戻されます。 認可完了時にそれら以外の処理を実行する必要がある場合は認可オブジェクトにデリゲートを設定してください。
mixi.authorizer.delegte = [[YourDelegate alloc] init];
現在の認可状態を確認するには、以下のメソッドを利用します。
Mixi#isAuthorized
通常は、認可画面は初回のみ表示され、2回目以降はスキップすることが可能です。isAuthorizedメソッドはそのための確認処理を行います。既に認可済みであれば YES が返り、未認可であれば NO が返ります。
以下のメソッドを呼び出すことで認可状態の解除を行います。なお、mixi API SDK for iOS を利用する場合はユーザ保護の観点から、必ずこの認証解除機能を必ずアプリケーションから呼び出せるようにしてください。
Mixi#revoke
なお、上記メソッドを呼び出しただけではSDK内にキャッシュされている古いアクセストークンは破棄されません。次のメソッドを利用することで認証の解除とアクセストークンの破棄を同時に行うことも可能です。
Mixi#revokeAndLogout
API にアクセスするメソッドは複数ありますが、代表的なメソッドはMixi#sendRequest:delegate: です。本メソッドを利用して、統一的な利用で様々なAPIをコールすることが可能です。
ここでは、APIを呼び出すためのsendRequest:delegate:メソッドの簡単な例を紹介します。各APIに必要なパラメータの意味や戻り値など個々のAPIに関する詳細情報については、SDKに添付されているリファレンスを参照してください。
APIはエンドポイントとパラメーターを設定したMixiRequest
インスタンスを、Mixi#sendRequest:delegate:
メソッドに渡すことで実行します。
API実行前に認可が完了しているかどうかを確認して、未認可の場合は先に認可しておきます。認可に失敗した場合はmixi公式アプリがインストールされていないか、最新版ではない可能性があるので、AppStoreのmixi公式アプリのページを開きます。
if ([mixi isAuthorized]) {
MixiRequest *request = [MixiRequest requestWithEndpoint:@"/people/@me/@friends"];
[mixi sendRequest:request delegate:mixiDelegate];
}
else if (![mixi authorizeForPermission:@"r_profile"]) {
MixiWebViewController *vc = MixiUtilDownloadViewController(self, @selector(closeDownloadView:));
vc.orientationDelegate = self;
[self presentModalViewController:vc animated:YES];
}
API実行結果はsendメソッド群の引数に与えていたMixiDelegate
プロトコルを実装したデリゲートで処理します。
例えば、APIの実行結果をAlertViewで表示するには次のようなデリゲートメソッドを定義したクラスのインスタンスをsendRequest:delegate:メソッドの引数に与えます。
- (void)mixi:(Mixi*)mixi didFinishLoading:(NSString*)data {
MixiUtilShowMessageTitle(data, @"実行結果");
}
上記以外のデリゲートメソッドについてはMixiDelegate
のドキュメントを参照してください。
mixiアドプログラムiOSアプリ版のAPIを利用することで、mixiアドプログラムをiOSアプリ版mixiアプリに組み込むこと ができます。ここでは、mixiアプリにどのようにmixiアドプログラムiOSアプリ版の機能を実装するかを説明いたします。
mixiアドプログラムiOSアプリ版の機能を利用するには、アプリ上で以下の「mixiアドプログラム専用枠」を表示してください。
専用枠サイズ: 横幅100%×縦37px(縦表示、横表示の場合とも)
専用枠には上記の図の1~3の場所に、リンクが設置されます。なお表示位置と表示内容は変更することができません。
mixiアドプログラムiOSアプリ版APIは、どなたでもご利用になれます。なお、お支払い対象となるのはmixiにiOSアプリ版mixiアプリのお申し込みいただき、弊社が承認したmixiアプリのみとなります。
mixiアドプログラムの機能はiOS SDKではMixiADBannerViewクラスで管理されています。mixiアドプログラムを利用するにはInterface Builderを利用して指定された位置にMixiADBannerViewインスタンスを表示するか、MixiADBannerViewインスタンスを画面に表示するコードをプログラム内に含めてください。
複数の画面でMixiADBannerViewを表示する場合は、MixiADBannerViewの共有オブジェクトを利用するといいでしょう。次は共有オブジェクトを利用してMixiADBannerViewを表示する例です。
- (void)loadView {
[super loadView];
[[MixiADBannerView sharedView] addOn:self.view]:
}
デバイスの向きに応じて表示を変える場合はuseOrientationプロパティをYESに設定するか、shouldAutorotateToInterfaceOrientation: メソッド内で明示的に orientation プロパティを設定してください。
― (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
[MixiADBannerView sharedView].orientation = interfaceOrientation;
}
アプリケーションの実装が完了した後、Ad Hocビルドしたバイナリをメールに添付し、下記の通りお送り下さい。
なお、Ad Hoc配布先のデバイスとして下記のUDIDを登録してください。
ファイルを送付後、下記のページからmixiアドプログラムiOSアプリ版にお申し込みください。