Podczas integracji aplikacji Facebook z oauth.io
, najnowszą wersją API, którą możemy wybrać, jest v2.3
.Oauth.io pobiera tylko "nazwę" i "id" w nieprzetworzonych danych z Facebooka v2.4 i v2.5
Proces logowania działa chociaż, ale gdy próbuje pobrać dane użytkownika (/me
) tylko elementy name
i id
są dostarczane w surowych danych z odpowiedzi oauth.io
:
curl "https://oauth.io/auth/facebook/me"
-H “oauthio:k=<myOauthKey>&access_token=<fbAccessToken>"
otrzymujemy następującą odpowiedź:
{
"status": "success",
"data":
{
"id": "fbId",
"avatar": "https://graph.facebook.com/v2.3/fbId/picture",
"name": "User Name",
"gender": 1,
"url": "https://www.facebook.com/fbId",
"raw":
{
"name": "User Name",
"id": "fbId"
}
}
}
Jeśli wykonujemy połączenia bezpośrednio za pomocą Facebooka, mogę dostać dodatkowe pola gdybym je określić w adresie URL:
curl "https://graph.facebook.com/v2.5/me?access_token=<fbAccessToken>
&fields=name,email,gender,birthday,first_name,last_name,picture"
otrzymujemy dane szukamy:
{
"name": "User Name",
"email": "email\u0040email.com",
"gender": "female",
"birthday": "03/02/1994",
"first_name": "User",
"last_name": "Name",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/hprofile-xlt1/v/t1.0-1/p50x50/whatever"
}
},
"id": "fbId"
}
Powód jest jasny: od v2.4
Facebook wymaga parametru fields
pobierać dodatkowe dane. Zobacz mniej pól domyślnych wyższą wydajność pod https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/
Wiesz, czy istnieje jakikolwiek sposób, aby powiedzieć oauth.io wypełnić parametr fields
podczas wywoływania facebook /me
połączenie?
Btw, używając:
https://oauth.io/auth/facebook/me?fields=name,email,gender,birthday
nie działa.