Получение обложки Facebooks через PHP SDK & Graph API
Я хотел бы знать, есть ли простой способ получить фотографию обложки от пользователя в моем приложении через facebook php sdk.
Спасибо заранее.
Ответы
Ответ 1
Facebook, похоже, недавно добавил поле Обложка в пользовательский объект
https://graph.facebook.com/facebookuserid?fields=cover предоставит вам обложку для пользователя pic Details
Facebook Doc Link: http://developers.facebook.com/docs/reference/api/user/
Ответ 2
Я думаю, что проще всего использовать график api:
http://graph.facebook.com/{user_id or page_id}?fields=cover
и проанализируйте возвращенный JSON.
{
"cover": {
"id": "XXX",
"source": "https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/311205_989690200741_1231438675_n.jpg",
"offset_y": 66
},
"id": "XXXXXX"
}
Ответ 3
Facebook имеет действительно плохую и устаревшую документацию...
На данный момент нет правильного способа сделать это с помощью Graph API, но с FQL это возможно.
SELECT pic_cover FROM user WHERE uid='yourUserId'
Поле pic_cover не документировано, но доступно.
Ответ должен выглядеть следующим образом:
[
{
"pic_cover": {
"cover_id": someId,
"source": "someUrl",
"offset_y": someOffset
}
}
]
Ответ 4
В последних версиях Graph API (2.4 на момент написания) текущее значение поддерживает поле "изображение", которое возвращает изображение профиля пользователя. Это стоит проверить.
/<user-id>?fields=id,name,picture
Ответ 5
Я думаю, что лучше спросить тип альбома, затем имя.
$albums = $facebook->api("/me/albums");
$album_id = "";
foreach($albums["data"] as $item){
//echo $item["id"]." - ".$item["name"]." - ".$item["type"]." - ".$item["cover_photo"]."<br/>";
if($item["type"] == "profile"){
$album_id = $item["id"];
$profile_picture_id = $item["cover_photo"];
break;
}
}
Ответ 6
Похоже, на данном этапе, ожидая обновленной документации из facebook, ваш метод является единственным способом "уверенного огня" для получения обложки временной шкалы пользователей.
Если вы обнаружите, что этот метод является медленным или неэффективным, возможно, вы можете попробовать запустить его как задание cron и иметь минимальную задержку обновления. Например. запускайте cron два раза в день (может быть, даже больше), возможно, обрабатывайте два или три пользователя одновременно, а cron работает каждые 2 минуты...
Не решение для одного; больше предложений.
Ответ 7
Я использую: http://graph.facebook.com/ {user_id или page_id}? fields = cover
Возврат в браузере:
{
"cover": {
"id": "XXX",
"source": "https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/311205_989690200741_1231438675_n.jpg",
"offset_y": 66
},
"id": "XXXXXX"
}
Как я могу получить поле 'source' для var-var php?
Sr, я не могу ответить, поэтому я пишу здесь.: (
Ответ 8
он пытается автоматически восстановить изображение с помощью php
$json = file_get_contents("https://graph.facebook.com/PROFILE_ID?fields=cover");
$obj = json_decode($json);
echo $obj->cover ->source;
Ответ 9
Я использую имя пользователя вместо id, и оно работает:
http://graph.facebook.com/{username}?fields=cover
Разберите JSON соответственно.
Ответ 10
Я использовал ссылку https://graph.facebook.com/facebookuserid?fields=cover, но это не сработало. Когда я просматриваю документацию по SDK в Facebook, я вижу ответ, который работает.
Надеюсь, это будет полезно для вас.
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@?fields=cover", [user objectForKey:@"id"]]
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
NSLog(@"%@",[[result objectForKey:@"cover"]objectForKey:@"source"]);
/* handle the result */
}];
Результат - это тип словаря. Вы можете увидеть ссылку на фотографию обложки для пользователя под тегом "обложка" и ее "исходным" тегом.
Ответ 11
Вот как я извлек свой обложки с помощью Jackson и Graph API.
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode actualObj = mapper.readTree(String.valueOf(object));
JsonNode cover = actualObj.get("cover");
Map<String,String> myMap = mapper.readValue(cover.toString(), HashMap.class);
Log.e("Cover link", myMap.get("source"));
coverpic = myMap.get("source");
} catch (IOException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "cover");
request.setParameters(parameters);
request.executeAsync();
Ответ 12
function getCover() {
FB.api('/me?fields=cover', function(response) {
document.getElementById('cover').innerHTML =
"<img src='" + response.cover['source'] + "' alt='' />"
});
}
Ответ 13
Здесь ссылка на выборку facebook cover pic..
http://www.77-thoughts.com/fetch-facebook-cover-pic-using-facebook-graph-api/
Вы можете демонстрацию здесь.
http://77-thoughts.com/demo/fetch_facebook_cover_picture_graph_api_demo.html