Push notification StackMob Java客户端
我目前正在使用stackmob为android和iOS提供推送通知。 我正在使用他们的java客户端发送推送通知 我正在提供正确的API_密钥和API_密钥。deviceToken也是正确的,但它有时会给我一个401错误,有时会给我一个200状态码,但我无法接收任何推送通知。 这是我的示例代码 公共类测试样本{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
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”
发送推送。您是否希望java客户端中显示推送通知?整个推送通知概念都与手机有关注册ID
- 如果
指的是以前在手机上注册的令牌,那么您用它拨打的电话应该可以正常工作。通常我希望像您这样的客户机调用registrationID
和pushToUsers()
,而不是直接处理令牌。StackMob API旨在抽象掉这些实现细节broadcastPushNotification()
- 如果你仍然有问题,你能发布你得到的控制台输出吗?我看到你已经打开了日志记录。更新到最新的sdk也总是很好的
- 这段代码到底应该做什么?首先,用一个假的设备令牌注册一个用户
。然后,您向一个似乎没有在任何地方定义的令牌“rathi”
发送推送。您是否希望java客户端中显示推送通知?整个推送通知概念都与手机有关注册ID
- 如果
指的是以前在手机上注册的令牌,那么您用它拨打的电话应该可以正常工作。通常我希望像您这样的客户机调用registrationID
和pushToUsers()
,而不是直接处理令牌。StackMob API旨在抽象掉这些实现细节broadcastPushNotification()
- 如果你仍然有问题,你能发布你得到的控制台输出吗?我看到你已经打开了日志记录。更新到最新的sdk也总是很好的
- 一些评论: