Javaを使用してFacebook APIを開発しようとしています。
フローとしてfacebookからaccess_tokenを取得することに成功。
String access_token_url = targetURI +
"client_id=" + appId +
"&client_secret=" + appSecret +
"&code=" + code +
"&redirect_uri=" + redirectURI; // 호출되지 않음
URL url = new URL (access_token_url);
URLConnection urlConn = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String accessTokenStr="";
while ((accessTokenStr=in.readLine()) != null) {
int endPnt = accessTokenStr.indexOf("&");
access_token = accessTokenStr.substring(13, endPnt);
System.out.println("@@@@@@@@@@@@@ access_token = " + access_token);
}
in.close();
この場合(下記ソース参照)、上記のaccess_tokenを利用して自身の情報を取得する際に例外(code:400)が発生しました。
String access_userInfo_url = "https://graph.facebook.com/me?" + "access_token=" + access_token;
System.out.println("@@@@@@@@@@@ access_userInfo_url==============" + access_userInfo_url);
URL url = new URL (access_userInfo_url);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
BufferedReader input = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
urlConn.setRequestMethod("GET");
//urlConn.setConnectTimeout(1000);
//urlConn.setReadTimeout(1000);
//urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//urlConn.setRequestProperty("Content-Length", String.valueOf(access_userInfo_url.length()));
String userInfoStr="";
while ((userInfoStr=input.readLine()) != null) {
System.out.println("@@@@@@@@@@@@@ userInfoStr = " + userInfoStr);
}
input.close();
フローとして例外メッセージを受け取りました。
java.io.IOException: Server returned HTTP response code: 400 for URL: https://graph.facebook.com/me?access_token=CAAC7APV7WpoBAHVfr2ChZAK4wVrQZCjNSbro3LgABvoFSMMSHmiloS5m95z3DCeNsZBoOHFsClrgBVIqZCCwg8JZCK3Xd0fq6uyu8GJbYNENFQCDKz25IsguBSXuReapPvZA3ZC3BuJVLPwpZAfVCZCqFW0wj6o6ZA6nXO5JzCutZBAum2cJQjiBwctFkzxWqxinz8ZD sun.net.www.protocol.http.HttpURLConnection.getInputStream (不明なソース) で sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream (不明なソース) で biztopia.facebook.web.FacebookController.requestUserInfo(FacebookController.java) :318) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(不明なソース) で sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース) で java.lang.reflect.Method.invoke(出典不明)
~ ~ ~ ~
「 https://graph.facebook.com/me?access_token=Token value 」としてWebブラウザ(エクスプローラー)でリクエストすると成功なのかと戸惑います。
解決策を持っている私を助けてください。