2016-01-22 2 views
0

Мне нужно скачать (по php: curl, file_get_contents ...) сообщение полностью в папку сайта.Facebook php sdk v5 - Загрузите полное сообщение для почтового ящика

я могу получить данные после записи, даже full_picture URL, но когда я хочу, чтобы загрузить его Wget или свернуться сервер отвечает с 403.

Если я пытаюсь загрузить этот адрес в браузере, не проблемы , Я вижу его.

https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457&oe=5748C6D2 

Но если я пытаюсь от завитка или Wget я получаю 401 ответ

wget https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457&oe=5748C6D2 

[1] 9988 
[2] 9989 

$ converted 'https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457' (ANSI_X3.4-1968) -> 'https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457' (UTF-8) 
--2016-01-22 15:20:39-- https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457 
Resolving scontent.xx.fbcdn.net (scontent.xx.fbcdn.net)... 31.13.83.4, 31.13.83.4 
Connecting to scontent.xx.fbcdn.net (scontent.xx.fbcdn.net)|31.13.83.4|:443... connected. 
HTTP request sent, awaiting response... 403 Forbidden 
2016-01-22 15:20:39 ERROR 403: Forbidden. 

Я попытался также прилагая маркер доступа к пути:

...&access_token=XXXXXXXX 

Это json post item:

stdClass Object 
(
    [id] => 396231587217143_531401453700155 
    [created_time] => 2016-01-11T13:21:37+0000 
    ... 
    [picture] => https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s130x130/12525704_987920591279679_1409522552_n.jpg?oh=34e4a1b419bb842c5f84441f9a781745&oe=574676AE 
    [full_picture] => https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457&oe=5748C6D2 
    [attachments] => stdClass Object 
     (
      [data] => Array 
       (
        [0] => stdClass Object 
         (
          [media] => stdClass Object 
           (
            [image] => stdClass Object 
             (
              [height] => 405 
              [src] => https://scontent.xx.fbcdn.net/hvthumb-xta1/v/t15.0-10/s720x720/12525704_987920591279679_1409522552_n.jpg?oh=33b2b223cc3e6c2ddd1a94f098c44457&oe=5748C6D2 
              [width] => 720 
             ) 

           ) 

          [target] => stdClass Object 
           (
            [id] => 10153413586308403 
            [url] => https://www.facebook.com/WorldArchery/videos/10153413586308403/ 
           ) 

          [type] => video_inline 
          [url] => https://www.facebook.com/WorldArchery/videos/10153413586308403/ 
         ) 

       ) 

     ) 

    ... 
) 

Я г Таким образом, публикация информации с веб-страницы facebook.

Init класса Facebook:

$this->facebook = new Facebook([ 
    'app_id' => $app_id, 
    'app_secret' => $app_secret, 
    'default_graph_version' => 'v2.5', 
    //'default_access_token' => '{access-token}', // optional 
]); 

Получение сообщение данных:

... 
$fields = array(
    'id', 
    'application', 
    'call_to_action', 
    'caption', 
    'created_time', 
    'description', 
    'from', 
    'icon', 
    'is_hidden', 
    'is_published', 
    'link', 
    'message', 
    'message_tags', 
    'name', 
    'object_id', 
    'picture', 
    'full_picture', 
    'place', 
    'privacy', 
    'properties', 
    'source', 
    'status_type', 
    'story', 
    'story_tags', 
    'targeting', 
    'to', 
    'type', 
    'updated_time', 
    'with_tags', 
    'actions', 
    // 'tags', 
    // 'object_attachment', 
    'feed_targeting', 
    'attachments', 
); 
$data = $this->facebook->get($id . '?fields=' . implode(',', $fields)); 
$item = json_decode($data->getBody()); 
$object (object) $item; 
+0

Добавление токена доступа бесполезно - вы здесь не делаете запрос API, но запрашиваете ресурс из своего CDN и не используете токены доступа. // Вы пытались добавить «обычные» заголовки запросов, чтобы ваш запрос выглядел так, как будто он появился из реального браузера - например, «User-Agent» и т. Д. ...? – CBroe

ответ

0

Ty установить UA как упоминалось @CBroe:

wget -U Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36 {your-url} 

Вы можете рассмотреть возможность использования Curl, как альтернатива: Saving image from PHP URL

+0

Curl + headers сохранили мой день! благодаря – jorgetutor

Смежные вопросы