测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | 自定义 |
发布上次发布 | 2014年12月 |
由 未注册 维护。
依赖 | |
可达性 | >= 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 都可用。
此外,定位 API 与 Touch 版/移动版不同,无需我们的许可即可使用。
要使用 mixi API SDK for iOS,请下载以下文件。 下载后,将被视为已同意 mixi API SDK for iOS 的使用条款。
包装 | 版本 | 大小 | 日期 |
---|---|---|---|
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を利用するには、あらかじめ パートナー・ダッシュボード にてアプリケーションが登録されている必要があります。まず、パートナー・ダッシュボードの mixiアプリ登録ページにて登録を行なってください。その際、対応デバイスの項目で「スマートフォンに対応(iOS版)」にチェックをすることでSDKが利用可能になります。
SDKを利用するには、あらかじめ パートナー・ダッシュボードにてアプリケーションが登録されている必要があります。まず、パートナー・ダッシュボードの mixi Graph APIのサービス登録ページにてアプリケーションを登録してください。
その際、"起動URIスキーム"を以下を参考に登録してください。
ユーザがmixiサイト上のアプリケーション一覧やフィードをクリックした際に、WebブラウザからiOSアプリケーションが起動されることになります。この時に利用されるのが、起動URIスキームです。 初期値は以下の値に設定されています。
この起動URIスキームのの部分は変更可能です。できるだけ変更されることをお勧めします。変更を行う場合は、パートナー・ダッシュボードのアプリ設定ページから変更してください。 この起動URIスキームを実際にアプリケーションが受け取るためには、アプリケーションの Info.plist に適切な値を設定する必要があります。
SDK(mixiIOSSDK-[ver].zip)をダウンロードして展開し、lib/MixiSDKをプロジェクトのソースディレクトリに配置します。
通常のiOSプロジェクト作成手順に従ってプロジェクトを作成します。
mixi API SDK for iOSは次のフレームワークを必要とします。
パートナー・ダッシュボードに登録した起動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 所需参数的意义、返回值等信息,请参考 SDK 中附带的参考文档。
使用 Mixi#sendRequest:delegate: 方法执行 API,通过传递设置好端点和参数的 MixiRequest
实例。在执行 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 执行结果通过实现所提供的 MixiDelegate
协议的代理来处理。例如,要使用 AlertView 显示 API 的执行结果,可以将定义了以下代理方法的类实例作为 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 广告程序的函数在 iOS SDK 中由 MixiADBannerView 类管理。要使用 Mixi 广告程序,请使用 Interface Builder 在指定位置显示 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 二进制文件,并以下方式发送。
此外,请将以下 UDID 注册为 Ad Hoc 分发的设备。
文件发送后,请从以下页面申请 mixi 广告程序 iOS 版本。