Facebookに接続し、name、last_name、および最も重要なemailなどのユーザーデータを取得するSpringでJavaを使用してRESTサービスを開発しています。
このサービスには、Facebook の uid とアクセス トークンを期待するメソッドがあり、 https://graph.facebook.com/me/?fields=email ,id,last_name,name&access_token=XXXXXを呼び出して 解析することにより、ユーザー情報を取得します。 json レスポンス。
問題は、応答に電子メールがないユーザーがいるということです.電話番号を使用してアカウントを作成するため、電子メールを設定していない Facebook ユーザーがいることがわかっています。それはここの問題ではありません。
RestTemplateクラスを使用すると、メールは応答に含まれませんが、Graph API Explorerツール ( https://developers.facebook.com/tools/explorer/ ) を使用すると、メールはそこにあります。
RestTemplate を使用:
RestTemplate rest = new RestTemplate();
String jsonResponse = rest.getForObject("https://graph.facebook.com/me/?fields=" + fields + "&access_token=" + accessToken, String.class);
JSONObject o = JSONObject.fromObject(jsonResponse);
RestTemplate による応答:
{
"id": "xxxxxxxx",
"last_name": "Avila",
"name": "Diego Emanuel Avila"
}
Graph API Explorer での応答
{
"id": "xxxxxxxx",
"email": "xxxxxx@gmail.com"
"last_name": "Avila",
"name": "Diego Emanuel Avila"
}
問題が RestTemplate クラスにあるのか、Facebook Graph API にあるのかはわかりません。Facebook から適切な応答を得るために、ヘッダーなどを追加する必要があるかどうかはわかりません。
ここで答えを探して、私はこの断続的な電子メール アドレスが facebook APIで見つからないことに遭遇しましたが、それは私のものと同じ問題ではありません。
私は自分自身を明確にしたことを願っています。これで私を助けてくれます。
どうもありがとう!