在页面加载时从OneSignal获取player_id

时间:2017-03-21 06:10:12

标签: javascript push-notification onesignal

我正在使用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,则上面的代码会向用户发送推送通知。但是假设某些用户访问我的网站并订阅推送通知并离开。再次访问他(他已经订阅)和收藏。(添加到收藏夹)当前缺货产品。那么我怎样才能获得{ {1}} 此用户可以存储在player_id表中吗?

"subs_fav"

当该产品可用时id player_id product_id 1 57dd3f80...a69621a p097 将运行该功能,该功能将通知用户该产品现在可用并且他们可以购买但是为此我们应该知道赞成的用户的player_id。这个产品。我想知道如何找到这个player_id,以便我可以将pushFav() ajax调用发送到addToFav()表中的商店

2 个答案:

答案 0 :(得分:7)

发现它!您只需要在回调中传递.p_class{ display:inline-block } 即可在查询时为用户提供OneSignal.getUserId()。在通话之前确保用户已经订阅了。

player_id

答案 1 :(得分:1)

将此添加到标题:

<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>