出于安全原因,OneSignal 不允许您在应用代码中使用标签定位。
OneSignal 确实允许您使用以下方式定位设备include_player_ids
不过,您的应用程序内的字段。
请注意,OneSignal 也不允许您组合不同的定位参数。所以你不能同时使用两者include_player_ids
and tags
一起瞄准。
要根据用户名发送通知,请使用OneSignal.sendTag
方法来分配用户名,如您的示例所示。接下来,从您的服务器端代码中,使用filters
目标参数,用于向具有该用户名的所有用户发送通知。
例如,下面是如何在 Ruby 中执行此操作的示例:
params = {"app_id" => "5eb5a37e-b458-11e3-ac11-000c2940e62c",
"contents" => {"en" => "English Message"},
"filters" => [
{"field": "tag",
"key": "username",
"relation": "=",
"value": "(username)"}
]
}
uri = URI.parse('https://onesignal.com/api/v1/notifications')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path,
'Content-Type' => 'application/json;charset=utf-8',
'Authorization' => "Basic NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj")
request.body = params.as_json.to_json
response = http.request(request)
puts response.body
您可以在 OneSignal 文档中找到更多示例here https://documentation.onesignal.com/reference#section-send-based-on-filters-tags-create-notification.