Class Gs2InboxClient
-
GS2\Core\AbstractGs2Client
-
GS2\Inbox\Gs2InboxClient
Methods summary
public
|
#
__construct( string $region, GS2\Core\Gs2Credentials $credentials, array $options = [] )
コンストラクタ
Parameters
- $region
- リージョン名
- $credentials
- 認証情報
- $options
- オプション
|
public
array
|
#
describeInbox( string $pageToken = NULL, integer $limit = NULL )
受信ボックスリストを取得
Parameters
- $pageToken
- ページトークン
- $limit
- 取得件数
Returns
array
- items
- array
- inboxId => 受信ボックスID
- ownerId => オーナーID
- name => 受信ボックス名
- serviceClass => サービスクラス
- autoDelete => 自動削除設定
- cooperationUrl => 連携用URL
- createAt => 作成日時
- nextPageToken => 次ページトークン
|
public
array
|
#
createInbox( array $request )
受信ボックスを作成
GS2-Inbox を利用するにはまず受信ボックスを作成します。
受信ボックスを作成後、受信ボックスにメッセージを送信することでメッセージを届けることができます。
1つの受信ボックスで、複数のユーザのメッセージを扱うことができますので、ユーザ数分の受信ボックスを作成する必要はありません。
受信ボックスを作成
GS2-Inbox を利用するにはまず受信ボックスを作成します。
受信ボックスを作成後、受信ボックスにメッセージを送信することでメッセージを届けることができます。
1つの受信ボックスで、複数のユーザのメッセージを扱うことができますので、ユーザ数分の受信ボックスを作成する必要はありません。
Parameters
- $request
- name => 受信ボックス名
- serviceClass => サービスクラス
- autoDelete => 自動削除設定
- cooperationUrl => 連携用URL
Returns
array
- item
- inboxId => 受信ボックスID
- ownerId => オーナーID
- name => 受信ボックス名
- serviceClass => サービスクラス
- autoDelete => 自動削除設定
- cooperationUrl => 連携用URL
- createAt => 作成日時
|
public
array
|
|
public
array
|
#
getInbox( array $request )
受信ボックスを取得
Parameters
Returns
array
- item
- inboxId => 受信ボックスID
- ownerId => オーナーID
- name => 受信ボックス名
- serviceClass => サービスクラス
- autoDelete => 自動削除設定
- cooperationUrl => 連携用URL
- createAt => 作成日時
|
public
array
|
|
public
array
|
#
updateInbox( array $request )
受信ボックスを更新
Parameters
- $request
- inboxName => 受信ボックス名
- serviceClass => サービスクラス
- cooperationUrl => 連携用URL
Returns
array
- item
- inboxId => 受信ボックスID
- ownerId => オーナーID
- name => 受信ボックス名
- serviceClass => サービスクラス
- autoDelete => 自動削除設定
- cooperationUrl => 連携用URL
- createAt => 作成日時
|
public
|
|
public
array
|
#
sendMessage( array $request )
メッセージを送信
メッセージを受信ボックスに送信します。
メッセージには本文との他に開封時通知を有効にするかのフラグ、既読状態のフラグといった情報が付加されています。
開封時通知を有効にすると、受信ボックスに設定された連携用URLにメッセージIDがPOSTリクエストで通知されます。
メッセージ送信時にも送信したメッセージIDが取得できますので、
例えば、メッセージに課金用アイテムを添付したい場合は以下の様なメッセージを送信します。
- 送信先: user-0001
- メッセージ本文: サーバ障害のお詫びです
- 開封時通知: 有効
このAPIの戻り値に含まれるメッセージIDとユーザID、アイテムの内容(課金用アイテム)をひも付けて保存します。
その後、ユーザがこのメッセージを開封すると、連携用URLにこのメッセージのメッセージIDが通知されます。
それを受けて、ユーザIDのアカウントにアイテムの内容(課金用アイテム)を付与します。
これで、メッセージにアイテムを添付することができます。
また、連携用URLを呼び出した際にエラー応答することで、メッセージの開封を失敗させることができます。
これによって、持ち物がいっぱいの場合などにアイテムの付与に失敗しても再度開封処理を実行させることができます。
開封時のコールバックは通信障害などの理由により、コールバック先のサーバは正しく処理を行えたけれど、
GS2側のインフラにレスポンスが届かず、結果的に処理が失敗する可能性を考慮する必要があります。
この場合、複数回の開封コールバックが呼び出される可能性がありますので、コールバック処理は冪等性を持った形で実装するようにしてください。
メッセージを送信
メッセージを受信ボックスに送信します。
メッセージには本文との他に開封時通知を有効にするかのフラグ、既読状態のフラグといった情報が付加されています。
開封時通知を有効にすると、受信ボックスに設定された連携用URLにメッセージIDがPOSTリクエストで通知されます。
メッセージ送信時にも送信したメッセージIDが取得できますので、
例えば、メッセージに課金用アイテムを添付したい場合は以下の様なメッセージを送信します。
- 送信先: user-0001
- メッセージ本文: サーバ障害のお詫びです
- 開封時通知: 有効
このAPIの戻り値に含まれるメッセージIDとユーザID、アイテムの内容(課金用アイテム)をひも付けて保存します。
その後、ユーザがこのメッセージを開封すると、連携用URLにこのメッセージのメッセージIDが通知されます。
それを受けて、ユーザIDのアカウントにアイテムの内容(課金用アイテム)を付与します。
これで、メッセージにアイテムを添付することができます。
また、連携用URLを呼び出した際にエラー応答することで、メッセージの開封を失敗させることができます。
これによって、持ち物がいっぱいの場合などにアイテムの付与に失敗しても再度開封処理を実行させることができます。
開封時のコールバックは通信障害などの理由により、コールバック先のサーバは正しく処理を行えたけれど、
GS2側のインフラにレスポンスが届かず、結果的に処理が失敗する可能性を考慮する必要があります。
この場合、複数回の開封コールバックが呼び出される可能性がありますので、コールバック処理は冪等性を持った形で実装するようにしてください。
Parameters
- $request
- inboxName => 受信ボックス名
- userId => 宛先ユーザID
- message => メッセージ本文
- cooperation => 開封時に連携用URLを呼び出すか
Returns
array
- item
- messageId => メッセージID
- inboxId => 受信ボックスID
- userId => 受信ユーザID
- message => メッセージ本文
- cooperation => 開封時に連携用URLを呼び出すか
- date => 受信日時
- read => 既読状態
|
public
array
|
#
describeMessage( array $request, string $pageToken = NULL, integer $limit = NULL )
メッセージリストを取得
accessToken には Gs2AuthClient::login() でログインして取得したアクセストークンを指定してください。
Parameters
- $request
- inboxName => 受信ボックス名
- accessToken => アクセストークン
- $pageToken
- ページトークン
- $limit
- 取得件数
Returns
array
- items
- array
- messageId => メッセージID
- inboxId => 受信ボックスID
- userId => 受信ユーザID
- message => メッセージ本文
- cooperation => 開封時に連携用URLを呼び出すか
- date => 受信日時
- read => 既読状態
- nextPageToken => 次ページトークン
|
public
array
|
#
getMessage( array $request )
メッセージを取得
Parameters
- $request
- inboxName => 受信ボックス名
- messageId => メッセージID
Returns
array
- item
- messageId => メッセージID
- inboxId => 受信ボックスID
- userId => 受信ユーザID
- message => メッセージ本文
- cooperation => 開封時に連携用URLを呼び出すか
- date => 受信日時
- read => 既読状態
|
public
array
|
#
readMessage( array $request )
メッセージを開封
受信ボックスの設定で開封時自動削除設定が有効な場合は、メッセージは削除されます。
連携用URLを呼び出す設定になっている場合、連携用URLにメッセージIDを付与したコールバックが実行されます。
このコールバックをうけて、持ち物を増やしたりすることでメッセージにアイテムを添付することができます。
レスポンスには連携用URLを呼び出した際の応答内容も含まれますので、開封時にさらにメッセージを表示させるようなこともできます。
例えば、連携用URLを呼び出した際に「アイテムを手に入れた」というレスポンスを返すことで、このAPIのレスポンスにその文字列も含んだ形で応答されますので、
開封時にさらにその応答メッセージを使って画面にメッセージとして「アイテムを手に入れた」という表示をすることができます。
開封時のコールバックは通信障害などの理由により、コールバック先のサーバは正しく処理を行えたけれど、
GS2側のインフラにレスポンスが届かず、結果的に処理が失敗する可能性を考慮する必要があります。
この場合、複数回の開封コールバックが呼び出される可能性がありますので、コールバック処理は冪等性を持った形で実装するようにしてください。
accessToken には Gs2AuthClient::login() でログインして取得したアクセストークンを指定してください。
メッセージを開封
受信ボックスの設定で開封時自動削除設定が有効な場合は、メッセージは削除されます。
連携用URLを呼び出す設定になっている場合、連携用URLにメッセージIDを付与したコールバックが実行されます。
このコールバックをうけて、持ち物を増やしたりすることでメッセージにアイテムを添付することができます。
レスポンスには連携用URLを呼び出した際の応答内容も含まれますので、開封時にさらにメッセージを表示させるようなこともできます。
例えば、連携用URLを呼び出した際に「アイテムを手に入れた」というレスポンスを返すことで、このAPIのレスポンスにその文字列も含んだ形で応答されますので、
開封時にさらにその応答メッセージを使って画面にメッセージとして「アイテムを手に入れた」という表示をすることができます。
開封時のコールバックは通信障害などの理由により、コールバック先のサーバは正しく処理を行えたけれど、
GS2側のインフラにレスポンスが届かず、結果的に処理が失敗する可能性を考慮する必要があります。
この場合、複数回の開封コールバックが呼び出される可能性がありますので、コールバック処理は冪等性を持った形で実装するようにしてください。
accessToken には Gs2AuthClient::login() でログインして取得したアクセストークンを指定してください。
Parameters
- $request
- inboxName => 受信ボックス名
- messageId => メッセージID
- accessToken => アクセストークン
Returns
array
- item
- messageId => メッセージID
- inboxId => 受信ボックスID
- userId => 受信ユーザID
- message => メッセージ本文
- cooperation => 開封時に連携用URLを呼び出すか
- date => 受信日時
- read => 既読状態
|
public
|
#
deleteMessage( array $request )
メッセージを削除
accessToken には Gs2AuthClient::login() でログインして取得したアクセストークンを指定してください。
Parameters
- $request
- inboxName => 受信ボックス名
- messageId => メッセージID
- accessToken => アクセストークン
|