我目前正在使用stackmob来发送android和iOS的推送通知。我正在使用他们的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();
}}
发布于 2012-06-19 01:29:49
下面是一些评论:
,
"Token"注册用户"rathi"。然后,向似乎没有在任何地方定义的令牌registrationID发送推送。您是否期望在java客户端中显示推送通知?整个推送通知概念都绑定到phonesregistrationID指的是之前在电话上注册的令牌,那么您使用它进行的呼叫应该是有效的。通常,我希望像您这样的客户端会调用pushToUsers()和broadcastPushNotification(),而不是直接处理令牌。StackMob应用程序接口旨在抽象https://stackoverflow.com/questions/10519575
复制相似问题