Подтвердить что ты не робот

Получение обложки Facebooks через PHP SDK & Graph API

Я хотел бы знать, есть ли простой способ получить фотографию обложки от пользователя в моем приложении через facebook php sdk.

Спасибо заранее.

4b9b3361

Ответ 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='' />"

    });
}