mixiアプリ » 技術仕様(Graph API方式) » APIの利用 » Request API
Request API
リクエストAPIを利用することで、ユーザは友人に「花束を贈りますので受け取ってください」といった要求を送信することができます。
リクエストの送信
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 以外を指定したとき。 |