C2DM을 발송하기 위해선 관리자KEY를 받아야 한다. 이를 위한 소스다
확인된건 아니지만.... 한번 받은 관리자 key는 1년만 유효한거 같다(추측임)
갑자기
"Exception in thread "main" java.io.IOException: Server returned HTTP response code: 401 for URL: https://android.apis.google.com/c2dm/send"
이런 에러가 발생했다... 잘쓰던 넘인데...
하다 하다 안되서리... 관리자KEY를 다시 받고 실행하니.. 잘된다...
대충 따져보니.. 작년이맘때쯤 C2DM을 테스트 한다고 등록했던거 같다...
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* AUTH 정보를 받기 위한 클래스
* @author inforex
*
*/
public class GetAuthAndroid {
public static void main( String[] args ) throws Exception{
//AUTH 정보 받기
try {
String auth = getAuthToken();
System.out.println("AUTH of PushAndroid.java ="+ auth);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 구글 인증키 받기
* @return
* @throws Exception
*/
public static String getAuthToken() throws Exception {
// Sender Auth Token 인증키 받기
String authtoken = "";
StringBuffer postDataBuilder = new StringBuffer();
postDataBuilder.append("accountType=HOSTED_OR_GOOGLE");
postDataBuilder.append("&Email=asdf@gmail.com"); // 구글 id
postDataBuilder.append("&Passwd=asdf"); // 구글 비밀번호
postDataBuilder.append("&service=ac2dm");
postDataBuilder.append("&source=Chatting Program"); //어플리케이션에 대한 간략설명
byte[] postData = postDataBuilder.toString().getBytes("UTF8");
URL url = new URL("https://www.google.com/accounts/ClientLogin");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", Integer.toString(postData.length));
OutputStream out = conn.getOutputStream();
out.write(postData);
out.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String sidLine = br.readLine();
String lsidLine = br.readLine();
String authLine = br.readLine();
System.out.println("sidLine----------->>>"+sidLine);
System.out.println("lsidLine----------->>>"+lsidLine);
System.out.println("authLine----------->>>"+authLine);
System.out.println("AuthKey----------->>>"+authLine.substring(5, authLine.length()));
authtoken = authLine.substring(5, authLine.length());
return authtoken;
}
}
'자료' 카테고리의 다른 글
C2DM 종료~! GCM 시작~! (1) | 2012.07.03 |
---|---|
E/AndroidRuntime(8068): FATAL EXCEPTION: Thread-12 (0) | 2012.07.02 |
RTSP 설정할때 조사한 것들 (1) | 2012.06.13 |
안드로이드 폰의 화면을 PC로출력 (0) | 2012.06.08 |
안드로이드 위치 주소정보 가져오는 방법 (1) | 2012.04.27 |