Push notification StackMob Java客户端

Push notification StackMob Java客户端,push-notification,apple-push-notifications,stackmob,Push Notification,Apple Push Notifications,Stackmob,我目前正在使用stackmob为android和iOS提供推送通知。 我正在使用他们的java客户端发送推送通知 我正在提供正确的API_密钥和API_密钥。deviceToken也是正确的,但它有时会给我一个401错误,有时会给我一个200状态码,但我无法接收任何推送通知。 这是我的示例代码 公共类测试样本{ public static String API_KEY = "Some key"; public static String API_SECRET = "Some key"; pu

我目前正在使用stackmob为android和iOS提供推送通知。 我正在使用他们的java客户端发送推送通知

我正在提供正确的API_密钥和API_密钥。deviceToken也是正确的,但它有时会给我一个401错误,有时会给我一个200状态码,但我无法接收任何推送通知。 这是我的示例代码

公共类测试样本{

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();
}
公共静态字符串API\u KEY=“Some KEY”;
公共静态字符串API_SECRET=“Some key”;
公共静态字符串USER\u OBJECT\u NAME=“USER”;
公共静态int API_版本=0;
公共静态void main(字符串[]args){
新的TestSample();
}
公共测试样本()
{       
字符串deviceToken=“令牌”;
init();
StackMob StackMob=getStackMobInstance();
registerForPushWithUser(“rathi”,deviceToken,new StackMobRawCallback()){
@凌驾
公共无效完成(HttpVerb arg0,字符串arg1,
列表arg2、字符串arg3、整数arg4、,
列表arg5,字节[]arg6){
系统输出打印号(“此处1”);
}
});
StackMobPushToken x=新的StackMobPushToken(注册ID,TokenType.iOS);
最终映射有效负载=新HashMap();
ArrayListtokens=新的ArrayList();
代币。添加(x);
有效载荷。放置(“徽章”、“1”);
有效载荷.put(“sound”、“customsound.wav”);
payload.put(“警报”,“Stackmob你好!”);
有效载荷。放置(“其他”、“东西”);
PushToToTokens(有效负载、令牌、新StackMobRawCallback(){
@凌驾
公共无效完成(HttpVerb arg0,字符串arg1,
列表arg2、字符串arg3、整数arg4、,
列表arg5,字节[]arg6){
System.out.println(“此处”);
}
});
}
公共void init(){
setStackMob(新的StackMob(API_密钥、API_秘密、用户_对象_名称、API_版本));
//StackMob.getStackMob().setSession(新的stackmobanridSession(c,StackMob.getStackMob().getSession());
StackMob.getStackMob().setSession(新的StackMob会话(StackMob.getStackMob().getSession());
StackMob.setUserAgentName(“iOS”);
setLogger(新的StackMobLogger());
StackMob.getLogger().setLogging(true);
setCookieStore(新的StackMobCookieStore());
}
公共静态StackMob getStackMobInstance(){
返回StackMob.getStackMob();
}
}一些评论:

  • 这段代码到底应该做什么?首先,用一个假的设备令牌注册一个用户
    “rathi”
    。然后,您向一个似乎没有在任何地方定义的令牌
    注册ID
    发送推送。您是否希望java客户端中显示推送通知?整个推送通知概念都与手机有关

  • 如果
    registrationID
    指的是以前在手机上注册的令牌,那么您用它拨打的电话应该可以正常工作。通常我希望像您这样的客户机调用
    pushToUsers()
    broadcastPushNotification()
    ,而不是直接处理令牌。StackMob API旨在抽象掉这些实现细节

  • 如果你仍然有问题,你能发布你得到的控制台输出吗?我看到你已经打开了日志记录。更新到最新的sdk也总是很好的

    • 一些评论:

      • 这段代码到底应该做什么?首先,用一个假的设备令牌注册一个用户
        “rathi”
        。然后,您向一个似乎没有在任何地方定义的令牌
        注册ID
        发送推送。您是否希望java客户端中显示推送通知?整个推送通知概念都与手机有关

      • 如果
        registrationID
        指的是以前在手机上注册的令牌,那么您用它拨打的电话应该可以正常工作。通常我希望像您这样的客户机调用
        pushToUsers()
        broadcastPushNotification()
        ,而不是直接处理令牌。StackMob API旨在抽象掉这些实现细节

      • 如果你仍然有问题,你能发布你得到的控制台输出吗?我看到你已经打开了日志记录。更新到最新的sdk也总是很好的