2012-05-09 4 views
1

현재 Android 및 iOS 용 푸시 알림에 stackmob을 사용하고 있습니다. 푸시 알림을 보내기 위해 자바 클라이언트를 사용하고 있습니다.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(); 
} 

}

답변

1

몇 가지 코멘트 :

  • 이 코드는 정확히 무엇을 생각합니까? 먼저 사용자 "rathi"에 가짜 장치 토큰 "Token"을 등록하십시오. 그런 다음 아무 곳에서나 정의되지 않는 토큰 registrationID으로 푸시를 보냅니다. 푸시 알림이 자바 클라이언트에 표시되기를 기대합니까? 전체 밀어 넣기 알림 개념은 전화에 연결되어 있습니다

  • registrationID이 이전에 전화에 등록 된 토큰을 참조하는 경우 사용자가 전화를 걸면됩니다. 일반적으로 토큰을 직접 다루는 것보다 pushToUsers()broadcastPushNotification()과 같은 클라이언트를 호출 할 것으로 기대됩니다. StackMob API는 이러한 구현 세부 사항을 추상화하기위한 것입니다.

  • 그래도 문제가 계속되면 콘솔 출력을 게시 할 수 있습니까? 벌써 로깅이 켜져있는 것을 봅니다. 최신 SDK로 업데이트하는 것도 항상 좋은 방법입니다.