0

これは私の最初の投稿です、申し訳ありませんが私の英語

こんにちは、みんな。私はPHPの新しいプログラマーであり、ZendMobileFrameworkを使用してプッシュ通知サーバーを実装したいと考えています。

で使用されているTomcatプロジェクトを実装する方法を探しています

http://developer.android.com/guide/google/gcm/demo.html

しかし、PHPで書かれています。

以下のコードで、使用済みのソースを記述しました。送信ボタンを呼び出すと、常にInvalidRegistrationエラーで応答します。

誰かがエラーの場所を確認できますか?

どうもありがとうございます

http://pastebin.com/MauzLX71

4

2 に答える 2

1

Android GCMのアーキテクチャの概要によると、次の場合にinvalidRegistrationエラーが発生します。

無効な登録IDサーバーに渡す登録IDのフォーマットを確認してください。電話がcom.google.android.c2dm.intent.REGISTRATIONインテントで受信する登録IDと一致していること、およびそれを切り捨てたり、文字を追加したりしていないことを確認してください。エラーコードがInvalidRegistrationの場合に発生します。

こちらで公式のGCMドキュメントを確認してください。

于 2012-07-08T19:29:27.357 に答える
0

ここで発生する可能性のあることの1つは、次のとおりです。

  • あなたのコードは実際にsendPushを呼び出す前にメッセージを処理して送信しようとしていますが、これが問題の一部を引き起こしている可能性があります。
  • APIキーにサインアップして、コード内のその部分を置き換えましたか?
  • デモクライアントアプリケーションでは、登録を実際に活用する方法を示しています。次のGitHubの問題に関する私のコメントを参照してください:https ://github.com/mwillbanks/Zend_Mobile/issues/16
    • サーバーには、デバイスからの登録IDが必要です。これはおそらくあなたが持っていないものです。
    • 登録IDを取得する1つの方法は、クライアントアプリ内のonRegistered呼び出しで、Log.i( "MY_APP_TAG"、regId);を実行することです。次に、logcatの出力を確認します。

Androidの例

public class GCMIntentService extends GCMBaseIntentService {

    public GCMIntentService() {
        super(Constants.SENDER_ID);
    }

    @Override
    protected void onRegistered(Context context, String regId) {
        Log.i("MY_APP_TAG", "Registered: " + regId);
    }

    @Override
    protected void onUnregistered(Context context, String regId) {
        // write a call here to send the regId to your server and unregister it
    }

    @Override
    protected void onMessage(Context context, Intent intent) {
        Log.i("MY_APP_TAG", "Received message!");
        // grabbing data looks like the following; the assumption
        // is title is part of the data string.
        String title = intent.getExtras().getString("title");
    }

}

*Zend_Mobile_Push_Gcmの例*

貼り付けたコードを提供した更新されたリンク(http://pastebin.com/NhrD5N6i)を参照してください。上記のテキストボックスで登録IDを使用することをお勧めします。

于 2012-07-09T12:47:02.030 に答える