mixiアプリ » 技術仕様(RESTful API方式) » PC » ユーザにメッセージを送信してみよう
ユーザにメッセージを送信してみよう
mixiアプリPC版では、アプリからユーザがメッセージを送信することを可能とする、メッセージ送信機能を提供しています。OpenSocialでは、JavaScript APIにてメッセージ送信を行うための機能を規定していますが、mixi Platformではこの規定に基づいた実装を行っています。ここでは、メッセージ送信機能を利用する方法について説明いたします。
できること
mixiアプリを利用しているユーザから、mixiアプリ上で他のユーザにメッセージを送信することができます。ここでのメッセージとは、mixiが提供しているmixiユーザ間のメッセージ送信サービスのことを指します。メッセージ送信機能を使うことで、mixiアプリの利用者にメッセージを入力するためのポップアップ画面を表示し、内容を入力してもらうことになります。その後、送信されたメッセージは、今までのmixiメッセージと同様に、送信相手の受信箱に届きます。
mixiアプリならではの機能として、単にメッセージをユーザに入力してもらうだけでなく、mixiアプリ固有の情報をそのメッセージに含めることが可能です。具体的には、絵文字や外部サイトへのURL、mixiアプリを起動するためのURLなどを含めることができます。例えば、グリーティングカードを送るmixiアプリであれば、送りたいカードをパラメータとして付与したmixiアプリ起動URLを作成してメッセージに含めることで、相手にカードを送ることが可能です。受け取ったユーザは、そのメッセージに含まれるURLをクリックすることで、素敵なグリーティングカードを目にすることでしょう。
APIリファレンス
メッセージを送信するために、以下の手順が必要となります。
- opensocial.Messageオブジェクトを生成する
- opensocial.requestSendMessage()関数を呼び出す
Messageオブジェクトの生成
まず、メッセージを送るために、以下の情報を決定します。
recipient | 送信相手のユーザID |
title | 件名として初期表示する文字列 * 全角100文字以内 * 絵文字利用不可 |
body | ユーザが入力するメッセージとは別に本文に追加したい固定本文 * 全角300文字以内 * 絵文字利用可 * アプリへのリンクなどを含めることが可能 |
これらのパラメータから、opensocial.newMessage()関数を使用して、Messageオブジェクトを生成します。
var params = {}; params[opensocial.Message.Field.TITLE] = title; var msg = opensocial.newMessage(body, params);
newMessage()関数の第1引数に本文を、第2引数にパラメータオブジェクトを指定します。
メッセージの送信
生成されたmsgオブジェクトの内容をメッセージ送信するには、opensocial.requestSendMessage()関数を使用します。
opensocial.requestSendMessage(recipient, msg, function(response) { if (response.hadError()) { var code = response.getErrorCode(); // do something... } });
requestSendMessage()関数の第1引数に宛先となるユーザIDを、第2引数に先ほど生成したMessageオブジェクトを、第3引数にコールバック関数を渡します。requestSendMessage()関数の呼び出し直後に、ユーザにメッセージ本文を入力させるためのポップアップ画面が表示されます。
ユーザがメッセージを送信した後、もしくは「やめる」ボタンを押した後に、コールバック関数が呼び出されます。その引数はopensocial.ResponseItemオブジェクトです。これのhadError()関数およびgetErrorCode()関数を使用して、適切なエラー処理を実装してください。以下に、発生する可能性のあるエラーコードを示します。
403 | * Viewerがアプリを保持していない * 送信相手からアクセスブロックされている * 「やめる」ボタンが押された |
404 | * パラメータが不正 * 宛先に指定したユーザが存在しない |
500 | * mixiサーバでの内部エラー |
メッセージ送信に関する制限
メッセージ送信APIを利用したユーザへのメッセージ送信は、mixiが従来よりご提供しておりますメッセージ送信機能と同等の仕様が適用されます。つまり、自分自身へのメッセージ送信、またはパートナーアカウントでのメッセージ送受信などは行うことができません。