Open Noz-O opened 9 years ago
エラー自体を見ると、正しくデバイストークンが登録されていないということになりますね。installation クラスに、 window.NCMB.monaca.setDeviceToken を使って登録した場合と同じように保存されているのか確認してもらうのが良いかと思います。 MonacaでNCMBのプッシュ通知プラグインを使うのは無料でできますので、そちらを使ってもらう方が早いかなと。
返信ありがとうございます。 教えていただいたとおり、window.NCMB.monaca.setDeviceTokenを使うことで、InvalidRegistrationが解消しました。配信済みのステータスに変わりました。 ありがとうございます。
しかし、登録した端末にPush通知が届きません。 http://mb.cloud.nifty.com/doc/sdkguide/javascript/push.html 上記URLを参考に実装しました。 なにか情報が足りない点があれば、わかる範囲で返信いたしますので、どうぞよろしくお願いします。
monacaのコード:
document.addEventListener("deviceready", function(){
if(window.NCMB != undefined){
// プッシュ通知受信時のコールバックを登録
window.NCMB.monaca.setHandler
(
function(jsonData){
// 送信時に指定したJSONが引数として渡されます
alert("callback :::" + JSON.stringify(jsonData));
}
);
}
},false);
nifty mobile cloud側のデータ(データストア):
XXXオブジェクトIDXXX 1.3.6 0 ["Atomos"] XXXデバイストークンXXX android 1.0.0 Asia/Tokyo XXXプロジェクト名XXX 2015-06-24T23:43:30.077+09:00 2015-06-24T23:44:49.239+09:00
nifty mobile cloud側のデータ(Push通知):
配信予定数 2 端末(予定) 配信数 2 端末 配信日時 2015-06-24T23:45:17+09:00 タイトル メッセージ test JSON {"message":"test"} URL 配信期限 1 hour プラットフォーム Android, iOS Android アクション 無し ダイアログ 無し iOS バッジ件数 インクリメントする 音声ファイル 無し カテゴリ 無し content-available 無効 配信端末の絞込条件 searchCondition ※詳しくはREST API リファレンス:クエリの指定方法をご参照ください。 { "channels": "Atomos" }
@Noz-O Androidですよね…。
くらいだと思うのですが…。一度、チャンネルを設定しないで送ってみるといかがでしょう?
返信ありがとうございます。 ご指摘いただいた点を見直したのですが、通知は届きませんでした。。。
スモールなテストプロジェクトを作って、一から試してみることにします! このたびはご回答いただき、本当にありがとうございました。
最小限のアプリを作って実行したところ、うまくいきました。 問題は、「チャンネル設定」がうまくいっていないことでした。 nifty mobile cloud側の端末情報のチャンネルを手動で更新してテストしたのが原因です。 よく考えたら、pythonからAPIのPUTを使って端末情報を更新しているのですが、 それがそもそも更新できていませんでした。 もう少し色々と試してみます。
お世話になっております。 試した結果を報告いたします。
・ チャンネル設定について チャンネル設定は手動でも、APIからの登録でも、配信済みにはなりますが、端末にPush通知は届きませんでした。代案として、「文字列」の新しいフィールドを追加することにより、サーバーごとの配信が可能となりました。 具体的には、データストアのinstallationに「server」というフィールドを追加し、 searchConditionにJSONの["server":"Atomos"]を入れることでサーバー特定ができ、通知も設定された端末に飛ぶようになりました。
他にも躓いている天があるのですが、このスレッドとは別に立てさせていただきます。 色々とアドバイスありがとうございました。今後ともよろしくお願いいたします!
はじめまして。 monacaを使って開発をしています。 monacaから、自サーバーにAjaxでリクエストを飛ばし、 自サーバーからPythonを使ってnifty mobile cloudのAPIにリクエストを飛ばしています。 現在、nifty mobile cloudに端末登録はできているのですが、 Push通知を飛ばすと、「配信済み(一部エラー)」となり、「配信エラー内容」がAndroid InvalidRegistrationとなります。 Push通知自体がはじめての実装なので、どこが間違っているのかご教授いただけないでしょうか。 monacaでのAjax部のコードを添付します。 また、なにか情報が足りない点があれば、わかる範囲で返信いたしますので、どうぞよろしくお願いします。
monacaのコード: