端末のデバイストークンをサーバサイドで保持していれば、下記にて個別に通知できる。
# @access_key_id、@secret_access_key、@regionは、適切にセットする。
# Pushしたい端末のデバイストークンを@device_tokenにセットする。
# 送信データ
data = {"aps"=>{
"alert"=>"メッセージ",
"badge"=>badge_cnt,
"sound"=>"default"}
}.to_json
message = {"APNS"=>data}.to_json
# エンドポイント作成
sns = AWS::SNS.new(:access_key_id => @access_key_id,
:secret_access_key => @secret_access_key,
:region => @region)
client = sns.client
response = client.create_platform_endpoint(
platform_application_arn: @application_arn,
token: @device_token)
endpoint_arn = response[:endpoint_arn]
# 送信
if client.publish(target_arn: endpoint_arn,
message: message,
message_structure: 'json')
Rails.logger.info "publish success"
else
Rails.logger.error "publish failed"
end