mixi Developer Center (ミクシィ デベロッパーセンター)

mixiアプリ

mixiアプリ » 技術仕様(Graph API方式) » APIの利用 » Request API

Request API

リクエストAPIを利用することで、ユーザは友人に「花束を贈りますので受け取ってください」といった要求を送信することができます。

request.jpg

リクエストの送信

mixiアプリからリクエストAPIを利用するためには、MixiContainer#showDialog() メソッドを利用します。第2引数に”/requests”を指定してこのメソッドを呼び出すことによって、友人に対して要求を送信することが可能です。

MixiContainer#showDialog(Activity activity, "/requests", Map parameters, CallbackListener listener)

パラメータ

パラメータ名 内容
message 送信されるメッセージの初期表示文章を指定します。
recipients リクエストを送信するユーザIDをカンマ区切りで指定します。利用ユーザと友人である必要があり、最大15人まで指定可能です。
url リクエストをユーザがクリックした際の飛び先のURL(for PC, Touch)
mobile_url リクエストをユーザがクリックした際の飛び先のURL(for モバイル)
image メッセージに含める画像のURL。末尾にMIME typeをカンマ区切りで指定する必要があります。

サンプルコード

Map params = new HashMap();
params.put("message", "一緒にやろ〜♪");
params.put("recipients", "lkajfd67lja3lf,gk2a5dsh3asf");
params.put("url", "http://mixi.jp/run_appli.pl?id=1234&appParams=...");
params.put("mobile_url", "http://ma.mixi.net/1234/?...");
params.put("image", "http://server.name/image.gif,image/gif");

mContainer.showDialog(this, "/requests", params,
    new CallbackListener() {
        @Override
        public void onComplete(Bundle values) {}

        @Override
        public void onError(ErrorInfo e) {}

        @Override
        public void onFatal(ErrorInfo e) {}

        @Override
        public void onCancel() {}
});

レスポンス

実際にユーザが誰に送信したかは、コールバックに対してBundle型でデータが渡されます。”request_member”パラメータにユーザIDがカンマ区切り形式で渡されます。また、同時に作成されたリクエストのIDに関しても、”request_id”パラメータとして渡されます。リクエストIDはSAP側で保持し、後に対象のリクエストを削除したいときに利用可能です。

パラメータ名 内容
request_member リクエストを送信したユーザID
例:5xei5uu1g3g0r%2Cqee3xk6natupj
request_id リクエストID
例:c738c12f5c6fbb585211471689510f9f

エラーコード

もし何らかのエラーが発生した場合は、onErrorコールバックURLが呼び出され、具体的なエラー内容が渡されます。エラーコードの詳細は以下となります。

エラーコード 概要
400 (BAD_REQUEST) パラメータ指定エラー(不正なrecipients指定、不正なmessage指定、不正なcallback指定、不正なimage指定、不正なfilter_type指定、不正なurl指定、不正なmobile_url指定、不正なtarget_users指定、不正なexclude_users指定)
403 (FORBIDDEN) ユーザーがキャンセルした(アプリに戻るリンクを押下した)
500 (INTERNAL_SERVER_ERROR) mixi側の内部エラー

リクエストの削除について

ユーザが受け取っているリクエストをアプリケーションから削除するために、リクエスト削除APIを利用することができます。削除を行うためには、リクエストの送信時に得ることができるリクエストID(request_id)の値が必要となります。

リクエストを削除するには、以下のようにMixiContainer#send()メソッドを利用します。

MixiContainer#send("/apps/requests/[User-ID]/@self", HttpMethod.DELETE, Map parameters, CallbackListener listener)

第1引数に指定するエンドポイントの記述方法は、以下となります。

パラメータ名 内容
User-ID 認可ユーザのID、もしくは@me
@self 認可ユーザが持つリクエストのみ削除可能なため、@self固定

第3引数に指定するパラメータは以下となります。

パラメータ名 内容
requestIds 削除したいリクエストのID。カンマ区切りにて最大10個まで指定可能。
サンプルコード
String requestId = ...; // 削除したいリクエストのID
Map params = new HashMap();
params.put("requestIds", requestId);

mContainer.send("/apps/requests/@me/@self", HttpMethod.DELETE, params,
    new CallbackListener() {
        @Override
        public void onComplete(Bundle values) {}

        @Override
        public void onError(ErrorInfo e) {}

        @Override
        public void onFatal(ErrorInfo e) {}

        @Override
        public void onCancel() {}
});

CallbackListenerのonComplete()メソッドが呼び出された場合は、削除に成功したことを意味します。

エラーコード

もし何らかのエラーが発生した場合は、CallbackListenerのonError()メソッドが呼び出され、具体的なエラー内容が渡されます。エラーコードの詳細は以下となります。

エラーコード 概要
400 (Bad request) 指定されたリクエストIDの個数が10個を超えていたとき。
requestIdsパラメータが指定されていなかったとき。
403 (Forbidden) 他人のリクエストを削除しようとした(User-IDに自分以外が指定された)とき。
404 (Not found) @self 以外を指定したとき。

 

このページの上部へ