1

私は現在、AndroidとiOSのプッシュ通知にstackmobを使用しています。私はプッシュ通知を送信するために彼らのJavaクライアントを使用しています。

正しいAPI_KEYとAPI_SECRETを指定しています。deviceTokenも正しいですが、401エラーが発生することもあれば、200ステータスコードが表示されることもありますが、プッシュ通知を受信できません。これは私のサンプルコードです。

パブリッククラスTestSample{

public static String API_KEY = "Some key";

public static String API_SECRET = "Some key";

public static String USER_OBJECT_NAME = "user";
public static int API_VERSION = 0;

public static void main(String[] args) {

       new TestSample();
}

public TestSample()
{       
    String deviceToken="Token";
    init();
    StackMob stackmob=getStackMobInstance();

    stackmob.registerForPushWithUser("rathi", deviceToken, new StackMobRawCallback() {

        @Override
        public void done(HttpVerb arg0, String arg1,
                List<Entry<String, String>> arg2, String arg3, Integer arg4,
                List<Entry<String, String>> arg5, byte[] arg6) {

             System.out.println("HEree1");
        }
    });


    StackMobPushToken x=new StackMobPushToken(registrationID, TokenType.iOS);

    final Map<String, String> payload = new HashMap<String, String>();
    ArrayList<StackMobPushToken>tokens=new ArrayList<StackMobPushToken>(); 
    tokens.add(x);

      payload.put("badge", "1");
      payload.put("sound", "customsound.wav");
      payload.put("alert", "Hello from Stackmob!");
      payload.put("other", "stuff");

    stackmob.pushToTokens(payload, tokens, new StackMobRawCallback() {

        @Override
        public void done(HttpVerb arg0, String arg1,
                List<Entry<String, String>> arg2, String arg3, Integer arg4,
                List<Entry<String, String>> arg5, byte[] arg6) {
             System.out.println("HEree");

        }
    });
}


public  void init() {
    StackMob.setStackMob(new StackMob(API_KEY, API_SECRET, USER_OBJECT_NAME, API_VERSION));
    //StackMob.getStackMob().setSession(new StackMobAndroidSession(c, StackMob.getStackMob().getSession()));
    StackMob.getStackMob().setSession(new StackMobSession(StackMob.getStackMob().getSession()));

    StackMob.setUserAgentName("iOS");
    StackMob.setLogger(new StackMobLogger());
    StackMob.getLogger().setLogging(true);
    StackMobRequest.setCookieStore(new StackMobCookieStore());

}

public static StackMob getStackMobInstance() {
    return StackMob.getStackMob();
}

}

4

1 に答える 1

1

いくつかのコメント:

  • このコードは正確に何をするはずですか?まず"rathi"、偽のデバイストークンを使用してユーザーを登録します"Token"registrationID次に、どこにも定義されていないように見えるトークンにプッシュを送信します。プッシュ通知がJavaクライアントに表示されることを期待していますか?プッシュ通知の概念全体は電話に関連付けられています

  • が以前に電話に登録されたトークンを参照している場合registrationID、それを使用して行う通話は機能するはずです。通常、私はあなたのようなクライアントがトークンを直接処理するのではなく、呼び出しpushToUsers()ていることを期待します。broadcastPushNotification()StackMob APIは、これらの実装の詳細を抽象化することを目的としています

  • それでも問題が解決しない場合は、取得したコンソール出力を投稿できますか?すでにログがオンになっているようです。最新のSDKに更新することも常に良いことです。

于 2012-06-18T17:29:48.973 に答える