在页面加载时从 OneSignal 获取 player_id
Get player_id from OneSignal on page load
我正在使用 Onesigal API.
实现网络推送通知
$fields = array(
'app_id' => "07aae1f0-xxxx-xxxx-aa7a-21c79c5b6733",
'include_player_ids'=>['57dd3f80-xxxx-xxxx-adb0-294bfa69621a'],
'contents' => array( "en"=> "message" )
);
$fields = json_encode($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
'Authorization: Basic YTdmYTYxYzYtN...tNjVlNzJkNDFlZmMz'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem' );
$response = curl_exec($ch);
curl_close($ch);
如果您知道他的 player_id
,以上代码会向用户发送推送通知。但是假设如果某个用户访问我的网站并订阅推送通知并且 leaves.Later 他再次访问(他已经订阅)并收藏。(添加到收藏夹)当前缺货的产品。那么如何我可以得到这个用户的 player_id
我可以存储在 "subs_fav"
table 中吗?
id player_id product_id
1 57dd3f80...a69621a p097
当该产品可用时 pushFav()
函数将 运行 通知用户该产品现在可用并且他们可以购买,但为此我们应该知道 player_id喜欢的用户。这个产品。我想知道如何找到这个 player_id 以便我可以发送它 addToFav()
ajax 调用存储在 "sub_fav"
table
找到了!您所需要的只是 OneSignal.getUserId()
传入一个回调,它会在查询时提供用户的 player_id
。在调用之前确保用户已经实际订阅。
OneSignal.isPushNotificationsEnabled(function(isEnabled) {
if (isEnabled) {
// user has subscribed
OneSignal.getUserId( function(userId) {
console.log('player_id of the subscribed user is : ' + userId);
// Make a POST call to your server with the user ID
});
}
});
您可以通过 Javascript 完成:只需将其添加到您的 header.php 或 footer.php。
在控制器中创建您的路径以通过数据库等方式保存它
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.init({
appId: "XXXXXXXXXXXXXXXXXXXXXXXXXX",
autoRegister: false,
notifyButton: {
enable: true,
},
});
OneSignal.registerForPushNotifications();
});
OneSignal.push(function() {
OneSignal.getUserId(function(userId) {
var user_id = <?php echo (Sentry::getUser()->id) ?? 0; ?>;
var token = "{{ csrf_token() }}";
$.post("/user/storeUserPath", {
'user_id': user_id,
'_token': token,
'userId': userId,
});
});
});
</script>
我正在使用 Onesigal API.
实现网络推送通知 $fields = array(
'app_id' => "07aae1f0-xxxx-xxxx-aa7a-21c79c5b6733",
'include_player_ids'=>['57dd3f80-xxxx-xxxx-adb0-294bfa69621a'],
'contents' => array( "en"=> "message" )
);
$fields = json_encode($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
'Authorization: Basic YTdmYTYxYzYtN...tNjVlNzJkNDFlZmMz'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem' );
$response = curl_exec($ch);
curl_close($ch);
如果您知道他的 player_id
,以上代码会向用户发送推送通知。但是假设如果某个用户访问我的网站并订阅推送通知并且 leaves.Later 他再次访问(他已经订阅)并收藏。(添加到收藏夹)当前缺货的产品。那么如何我可以得到这个用户的 player_id
我可以存储在 "subs_fav"
table 中吗?
id player_id product_id
1 57dd3f80...a69621a p097
当该产品可用时 pushFav()
函数将 运行 通知用户该产品现在可用并且他们可以购买,但为此我们应该知道 player_id喜欢的用户。这个产品。我想知道如何找到这个 player_id 以便我可以发送它 addToFav()
ajax 调用存储在 "sub_fav"
table
找到了!您所需要的只是 OneSignal.getUserId()
传入一个回调,它会在查询时提供用户的 player_id
。在调用之前确保用户已经实际订阅。
OneSignal.isPushNotificationsEnabled(function(isEnabled) {
if (isEnabled) {
// user has subscribed
OneSignal.getUserId( function(userId) {
console.log('player_id of the subscribed user is : ' + userId);
// Make a POST call to your server with the user ID
});
}
});
您可以通过 Javascript 完成:只需将其添加到您的 header.php 或 footer.php。 在控制器中创建您的路径以通过数据库等方式保存它
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.init({
appId: "XXXXXXXXXXXXXXXXXXXXXXXXXX",
autoRegister: false,
notifyButton: {
enable: true,
},
});
OneSignal.registerForPushNotifications();
});
OneSignal.push(function() {
OneSignal.getUserId(function(userId) {
var user_id = <?php echo (Sentry::getUser()->id) ?? 0; ?>;
var token = "{{ csrf_token() }}";
$.post("/user/storeUserPath", {
'user_id': user_id,
'_token': token,
'userId': userId,
});
});
});
</script>