MixiSDK 1.5.1

MixiSDK 1.5.1

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布上次发布2014年12月

未注册 维护。



 
依赖
可达性>= 0
SBJson>= 0
SFHFKeychainUtils>= 0
 

MixiSDK 1.5.1

  • 作者
  • mixi

务必先阅读在此

开始之前

mixi API SDK for iOS 是为开发者开发,以便尽可能简单地开发 iOS 本地 mixi 应用而开发的。

特点

mixi API SDK for iOS 的特点如下。

  • 无论个人还是法人,只需要个人合作伙伴注册,任何人都可以进行开发。
  • 不需要实现 OAuth 2.0 的认证/授权流程。
  • 自动获取/更新令牌。
  • 可以通过统一的手续执行 API 调用。
  • 可以实现单点登录,无需在用户授权时输入密码。

支持终端

本 SDK 支持以下 iOS 终端。

  • iPhone(iOS 4.0 以上) **1

**1 关于 iPad,目前尚未确定。

可用 API

  • mixi 应用
    • People API
    • Group API
    • Photo API
    • 请求 API
    • Communication Feed **2
  • Graph API **3
    • People API
    • Group API
    • People lookup API
    • 语音 API
    • 更新 API
    • 检查 API
    • Photo API
    • 消息 API
    • 日记 API
    • 检查 API
    • 配置图片 API

**2 Communication Feed 将提供

**3 大多数 Graph API 都可用。

此外,定位 API 与 Touch 版/移动版不同,无需我们的许可即可使用。

SDK 下载

要使用 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

  • 添加了检查 HTTP 响应的委托方法(MixiDelegate#mixi:didReceiveResponse:)

v1.4.8 2012-10-26

  • 添加了 SDK 附带的授权界面登录 Cookie 的清理处理

v1.4.7 2012-10-11

  • 添加了 revokeAndLogout

v1.4.6 2012-09-21

  • 添加了对登录按钮的双击防止
  • iOS 6 中的 warning 抑制

v1.4.5 2012-07-26

  • 更改了请求 API 的错误处理方法
  • 不具合修正(API 的同步调用·Graph API 的 SDK 单独授权)

v1.4.4 2012-07-13

  • 限制从授权界面到其他界面的跳转
  • 不处理授权信息的错误

v1.4.3 2012-06-20

  • 不具合修正(官方应用连接)

v1.4.2 2012-06-20

  • 更改了 SDK 附带的授权界面用委托的设置方法

v1.4.1 2012-06-19

  • 更改了 mixi 公式 iPhone 应用的存在检查时间,从应用程序启动时更改到授权执行前的时间
  • 更改了在执行 SDK 附带的授权界面用委托处理之后,一定要关闭模态视图的方式

v1.4.0 2012-06-14

  • 允许 mixi 公式 iPhone 应用中的 SDK 单独授权
  • 根据 mixi 公式 iPhone 应用的有无自动更改授权方式
  • (注) 与 1.3.6 之前不同,mixi 公式 iPhone 应用未安装时的处理方式不同。如果要实现与之前相同的操作,请显式地将 mixi.authorizer 的值设置为 MixiAppAuthorizer 对象。

v1.3.6 2012-04-06

  • 错误修正(停止 mixi 应用中的 SDK 单独授权)

v1.3.5 2011-04-02

  • 将 @throw 修改为 NSException#raise

v1.3.4 2012-03-28

  • 在 Graph API 的 SDK 单独授权中,通知工具栏中的“关闭”按钮的按下
  • 不具合修正(错误代码更改·官方应用下载)

v1.3.3 2012-03-15

  • 不具合修正(UserDefaults)

v1.3.2 2012-03-01

  • 不具合修正(请求 API 取消通知)

v1.3.1 2012-02-21

  • 请求 API 取消通知

v1.3 2012-02-13

  • 不使用 mixi 公式 iPhone 应用即可授权 Graph API
  • 更改了目录结构
  • 不具合修正(声音获取 API)

v1.2.1 2011-12-28

  • 错误修正(内存泄漏)

v1.2 2011-10-31

  • mixi_apps2スコープの導入とmixi_appsスコープの廃止
  • 不具合修正(リクエストAPI呼び出し、MixiConfigのappIdプロパティ削除)

v1.1 2011-09-30

  • mAP対応

v1.0 2011-09-20

  • 提供開始

アプリケーションの登録

本SDKを用いてiOSアプリを開発するための手順を説明します。

mixiアプリ

SDKを利用するには、あらかじめ パートナー・ダッシュボード にてアプリケーションが登録されている必要があります。まず、パートナー・ダッシュボードの mixiアプリ登録ページにて登録を行なってください。その際、対応デバイスの項目で「スマートフォンに対応(iOS版)」にチェックをすることでSDKが利用可能になります。

Graph API

SDKを利用するには、あらかじめ パートナー・ダッシュボードにてアプリケーションが登録されている必要があります。まず、パートナー・ダッシュボードの mixi Graph APIのサービス登録ページにてアプリケーションを登録してください。

その際、"起動URIスキーム"を以下を参考に登録してください。

起動URIスキーム

ユーザがmixiサイト上のアプリケーション一覧やフィードをクリックした際に、WebブラウザからiOSアプリケーションが起動されることになります。この時に利用されるのが、起動URIスキームです。 初期値は以下の値に設定されています。

  • mixiapp-://run

この起動URIスキームのの部分は変更可能です。できるだけ変更されることをお勧めします。変更を行う場合は、パートナー・ダッシュボードのアプリ設定ページから変更してください。 この起動URIスキームを実際にアプリケーションが受け取るためには、アプリケーションの Info.plist に適切な値を設定する必要があります。

プロジェクトの作成

SDK(mixiIOSSDK-[ver].zip)をダウンロードして展開し、lib/MixiSDKをプロジェクトのソースディレクトリに配置します。

iOSプロジェクトの作成

通常のiOSプロジェクト作成手順に従ってプロジェクトを作成します。

必要なフレームワークの追加

mixi API SDK for iOSは次のフレームワークを必要とします。

  • CFNetwork.framework
  • Security.framework
  • SystemConfiguration.framework

起動URIスキームの追加

パートナー・ダッシュボードに登録した起動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単体での認可

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];

  • MixiSDKAuthorizerDelegate#authorizer:didSuccessWithEndpoint
  • MixiSDKAuthorizerDelegate#authorizer:didCancelWithEndpoint
  • MixiSDKAuthorizerDelegate#authorizer:didFailWithEndpoint:error

認可状態の確認

現在の認可状態を確認するには、以下のメソッドを利用します。

Mixi#isAuthorized

通常は、認可画面は初回のみ表示され、2回目以降はスキップすることが可能です。isAuthorizedメソッドはそのための確認処理を行います。既に認可済みであれば YES が返り、未認可であれば NO が返ります。

認証解除

以下方法可用于取消授权状态。此外,若使用 mixi API SDK for iOS,出于用户保护的角度考虑,请确保应用程序能够调用此认证解除功能。

Mixi#revoke

仅调用上述方法不会破坏 SDK 中缓存的旧访问令牌。可以通过使用下一个方法来同时执行认证解除和访问令牌销毁。

Mixi#revokeAndLogout

API 的使用

有多个方法可以访问 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 广告程序 API

通过使用 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 二进制文件,并以下方式发送。

  • 收件人:
  • 主题: 【iOS 应用版 mAP 测试执行文件申请】应用名/SAP 名
  • 内容: 发布计划的应用的预构建的 Ad Hoc 二进制文件(如果邮件中的文件大小超过 10MB,请指定下载位置和方法)

此外,请将以下 UDID 注册为 Ad Hoc 分发的设备。

  • 978b-464c-4afe-b6eac-b712-9a86-8aca-f7da-5ab6

文件发送后,请从以下页面申请 mixi 广告程序 iOS 版本。

http://developer.mixi.co.jp/appli/policies/map/guidelines/