2016-09-07 7 views
11

説明したプッシュ通知に必要なものはすべてhereです。 「トークンが保存された:xxxxthetokenxxxxを」デバイストークンがログに記録され新しいイオンプッシュ登録デバイストークン

// register for pushio 
    $ionicPush.register().then(function(t) { 
     return $ionicPush.saveToken(t, {ignore_user:true}); 
    }).then(function(t) { 
     console.log('Token saved:', t.token); 
    }); 

は、私は次のように起動時にデバイスを登録しています。

今、私はCURLとIonic.ioダッシュボードからプッシュを送信しています。メッセージのステータス(CURLでチェック)は200で、エラーはありません。したがって、プッシュ通知が送信されます:

{"meta": {"request_id": "8d9c69ce-b66c-4002-8cb3-f91c57505b0f", "version": "2.0.0-beta.0", "status": 200}, "data": []} 

しかし、私のデバイスは通知を受信して​​いません。これはsaveToken()機能によるものだと思います。 saveToken()はどこに保存されていますか?

誰かがこれを解決する手がかりを持っていますか?

UPDATE:プッシュを送信するには、このコードを使用して - 私:

<?php $curl = curl_init(); 
$token = "mytoken"; 

curl_setopt_array($curl, array(

    CURLOPT_URL => "https://api.ionic.io/push/notifications", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "POST", 
    CURLOPT_POSTFIELDS => ' 

    { 
    "tokens": "bbc654c496abc2dc42a40941ac944f0a8aeb0d5b227d523e335dbd51b71ed646", 
    "profile": "getto", 
    "notification": { 
     "message": "Hello World!" 
    } 
    }', 
    CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer $token", 
    "Content-Type: application/json" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} ?> 

EDIT:奇妙なことがあり、それはAndroid上でデバイストークンが登録されていません。

+0

トークンをデバイスに保存する必要はありません。そのトークンをAPIに渡す必要があります。 –

+1

私は$ ionicPush.saveToken()を呼び出します。これは、トークンをIonicデータベースに保存します。そして、Ionic.ioダッシュボードからプッシュを送信すると、この保存されたトークンはionic.ioダッシュボードが使用するAPIに渡されます。私は正しい? – m1crdy

+0

自分でトークンを保存する必要はありますか?デバイス上で試してこのトークンに通知を送信すると、上記の返信が表示されます。しかし、メッセージは届いていません。私は自分のコードで質問を更新しました – m1crdy

答えて

0

サービスを初期化して、モジュールの実行機能でデバイスを登録します。ユーザーに通知を送信するためにユーザーが登録したデバイストークンが必要です。

$ionicPush.init({ 
    debug: true, 
    onNotification: function (notification) { 
    console.log('token:', notification.payload); 
    }, 
    onRegister: function (token) { 
    console.log('Device Token:', token); 
    $ionicPush.saveToken(token); // persist the token in the Ionic Platform 
    } 
}); 

$ionicPush.register(); 

イオンプッシュを使用すると、ダッシュボード(ionic.io)を介してターゲットにプッシュ通知を作成することができます。以下の形式で通知をサーバーから送信することもできます。

curl -X POST -H "Authorization: Bearer API_TOKEN" -H "Content-Type: application/json" -d '{ 
    "tokens": ["DEVICE_TOKEN"], 
     "profile": "PROFILE_TAG", 
     "notification": { 
       "message": "Hello World!" 
     "android": { 
        "title": "Hi User", 
        "message": "An update is available for your App", 
        "payload": { 
         "update": true 
        } 
      } 
    } }' "https://api.ionic.io/push/notifications" 
+0

そうです。ありがとう。しかし、トークンはどこに保存されていますか?カールの中でそれらを取り出す方法は?トークンを自分で外部のデータベースに保存する必要がありますか? – m1crdy

+0

個々のユーザーのためのカスタムメッセージを使用して、いつでも、ターゲット通知をユーザーに送信できます。 https://docs.ionic.io/services/push/#summaryを参照してください。 上記のいずれかを実行する場合は、すべてのユーザーのトークンをデータベースの一意のIDに保存する必要があります。 ただし、すべてのユーザーに一括通知を送信する場合にのみ、手動で行う必要がある場合は、[プッシュ]> [新しい通知]にナビゲートしてダッシュボードに通知を作成できます。 https://docs.ionic.io/services/push/#sending-pushesを参照してください。 –

関連する問題