현재 Graph API Explorer 를 사용하여 몇 가지 테스트를하고 있습니다. 그것은 좋은 도구입니다.
친구의 이름, 아이디, 사진과 함께 사용자의 친구 목록을 얻고 싶습니다. 그래서 다음을 입력합니다.
https://graph.facebook.com/me/friends?fields=id,picture,name
하지만 사진은 50x50에 불과하며이 요청에서 더 큰 사진을 원합니다.
가능합니까?
현재 Graph API Explorer 를 사용하여 몇 가지 테스트를하고 있습니다. 그것은 좋은 도구입니다.
친구의 이름, 아이디, 사진과 함께 사용자의 친구 목록을 얻고 싶습니다. 그래서 다음을 입력합니다.
https://graph.facebook.com/me/friends?fields=id,picture,name
하지만 사진은 50x50에 불과하며이 요청에서 더 큰 사진을 원합니다.
가능합니까?
답변:
그래도 '그림'속성을 가져올 필요는 없습니다. 훨씬 더 편리한 방법이 있습니다. 필요한 것은 userid뿐입니다. 아래 예를 참조하세요.
https://graph.facebook.com/user_id/picture?type=large
ps 유형은 원하는 크기를 정의합니다.
plz는 기본 권한이있는 토큰을 사용하면 / me / friends는 id + name 속성 만있는 친구 목록을 반환합니다.
Facebook 의이 버그 에 설명 된대로 이제 새 API " field expansion "구문을 통해 특정 이미지 크기를 요청할 수도 있습니다 .
이렇게 :
https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)
모든 친구 (물론 앱을 사용하는)를 올바른 사진 크기로 얻는 가장 좋은 방법 은 크기 태그 (정사각형, 소형, 보통, 대형) 중 하나 를 사용하여 필드 확장 을 사용 하는 것입니다.
/me/friends?fields=picture.type(large)
(편집 : 더 이상 작동하지 않음)
... 또는 너비 / 높이를 지정할 수 있습니다.
me/friends?fields=picture.width(100).height(100)
Btw, 다음과 같이 작성할 수도 있습니다.
me?fields=friends{picture.type(large)}
필드의 배열을 변경 id,name,picture
하는 방법에 대해id,name,picture.type(large)
https://graph.facebook.com/v2.8/me?fields=id,name,picture.type(large)&access_token=<the_token>
결과:
{
"id": "130716224073524",
"name": "Julian Mann",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15032818_133926070419206_3681208703790460208_n.jpg?oh=a288898d87420cdc7ed8db5602bbb520&oe=58CB5D16"
}
}
}
Graph returned an error: (#100) For field 'picture': type must be one of the following values: thumbnail, small, album
높이나 너비를 기준으로 원하는 경우 이미지를 가져올 수도 있습니다.
https://graph.facebook.com/user_id/picture?height=
또는
https://graph.facebook.com/user_id/picture?width=
값은 기본적으로 픽셀 단위이며 int 값만 제공하면됩니다.
Graph API Explorer를 광범위하게 조사하고 마침내 full_picture를 찾았습니다.
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture
추신 : full_picture가 내가 원하는 전체 크기 이미지를 항상 제공하지는 않는다는 것을 알았습니다. '첨부 파일'은
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture,attachments
흠 ... 해결책을 찾은 것 같아요.
사실, 그냥 요청할 수 있습니다
https://graph.facebook.com/me/friends?fields=id,name
http://developers.facebook.com/docs/reference/api/ 에 따르면 ( "사진"섹션) 사용자 ID로 프로필 사진의 URL을 만들 수 있습니다.
예를 들어 사용자 ID가 $ id에 있다고 가정합니다.
"http://graph.facebook.com/$id/picture?type=square"
"http://graph.facebook.com/$id/picture?type=small"
"http://graph.facebook.com/$id/picture?type=normal"
"http://graph.facebook.com/$id/picture?type=large"
그러나 최종 이미지 URL이 아니므로 누군가가 더 나은 솔루션을 가지고 있다면 기뻐할 것입니다. :)
Facebook 그래프 API에 대한 요청에서 width
& height
를 지정할 수 있습니다 .http://graph.facebook.com/user_id/picture?width=500&height=500
그래프 응답 ( " http://photos-c.ak.fbcdn.net/"ones) 에있는 그림 URL에서 기본 "_s.jpg"를 "_n.jpg"(? 정상 크기)로 바꾸거나 "_b.jpg"(? 큰 크기) 또는 "_t.jpg"(썸네일).
Hacakable URL / REST API는 웹을 개선합니다.
다음과 picture.type(full_picture)
같이 요청했을 때이 오류가 발생했습니다 .
"(# 100) 'picture'필드의 경우 type은 small, normal, album, large, square 값 중 하나 여야합니다."
내가 가진 요청을 할 때 picture.type(album)
와picture.type(square)
50x50 픽셀 크기의 이미지로 응답합니다.
로 요청하면 picture.type(large)
200x200 픽셀 크기의 이미지로 응답합니다.
로 요청하면 picture.width(800)
477x477 픽셀 크기의 이미지로 응답합니다.
와 picture.width(250)
응답에서 320x320.
와 picture.width(50)
, 응답은 50 × 50.
와 picture.width(100)
응답 100 × 100.
와 picture.width(150)
응답 160x160.
페이스 북은 사용자가 사진을 처음 추가 할 때 크기가 다양하게 조정 된 이미지를 제공한다고 생각합니다.
여기에서 사용자 이미지를 요청하는 API는 요청 된 이미지 크기 조정을 지원하지 않습니다. 가장 가까운 이미지 크기를 제공한다고 생각합니다.
다음과 같이 크기를 조정할 수 있습니다.
사용하다:
https://graph.facebook.com/USER_ID?fields=picture.type(large)
자세한 내용 : https://developers.facebook.com/docs/graph-api/reference/user/picture/
지금은 친구 사진을 많이 찍을 수있는 유일한 방법은 FQL을 사용하는 것이라고 생각합니다. 먼저 친구 목록을 가져와야합니다.
https://graph.facebook.com/me/friends
그런 다음이 목록을 구문 분석하고 모든 친구를 추출합니다 ids
. 이 경우 다음 FQL 쿼리를 실행하십시오.
SELECT id, url FROM profile_pic WHERE id IN (id1, id2) AND width=200 AND height=200
200
여기에 예시 크기가 있습니다. 무엇이든 입력 할 수 있습니다. 다음 응답을 받아야합니다.
{
"data": [
{
"id": ...,
"url": "https://fbcdn-profile-a.akamaihd.net/..."
},
{
"id": ...,
"url": "https://fbcdn-profile-a.akamaihd.net/..."
}
]
}
각 URL은 200x200px 이미지에 대한 링크입니다.
나는 같은 문제가 있지만 내 문제를 해결하기 위해 이것을 시도했습니다. 큰 이미지를 반환합니다. 완벽한 해결책은 아니지만이 방법을 시도해 볼 수 있습니다.
https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX
다음과 같이 각 json 객체의 URL에서 픽셀 크기를 변경하여 이미지의 크기를 변경하십시오.
예를 들어 s480x480 을 .
JS 스타일 변형. 엄청나게 큰 그림 너비를 설정하면 가장 큰 변형을 얻을 수 있습니다.
FB.api(
'/' + userId,
{fields: 'picture.width(2048)'},
function (response) {
if (response && !response.error) {
console.log(response.picture.data.url);
}
}
);
참고 : Graph API v8.0부터는 must provide the access token
모든 UserID 요청에 대해 수행합니다.
그래프 API 조회 :
https://graph.facebook.com/<user_id>/picture?height=1000&access_token=<any_of_above_token>
Firebase 사용 :
FirebaseUser user = mAuth.getCurrentUser();
String photoUrl = user.getPhotoUrl() + "/picture?height=1000&access_token=" +
loginResult.getAccessToken().getToken();
당신은에서 토큰을 얻을 registerCallback
그냥이 같은
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
FirebaseUser user = mAuth.getCurrentUser();
String photoUrl = user.getPhotoUrl() + "/picture?height=1000&access_token=" + loginResult.getAccessToken().getToken();
}
@Override
public void onCancel() {
Log.d("Fb on Login", "facebook:onCancel");
}
@Override
public void onError(FacebookException error) {
Log.e("Fb on Login", "facebook:onError", error);
}
});
이것이 문서에 나오는 내용입니다.
2020 년 10 월 24 일부터 모든 UID 기반 쿼리에 액세스 토큰이 필요합니다. UID를 쿼리하여 토큰을 포함해야하는 경우 :
- Facebook 로그인 인증 요청에 사용자 액세스 토큰 사용
- 페이지 범위 요청에 페이지 액세스 토큰 사용
- 서버 측 요청에 앱 액세스 토큰 사용
- 모바일 또는 웹 클라이언트 측 요청에 클라이언트 액세스 토큰 사용
다른 토큰 유형 중 하나를 사용할 수없는 경우에만 클라이언트 토큰을 사용하는 것이 좋습니다.