2012-02-04 2 views
0

Я новичок в API Facebook, и на данный момент я использую PHP PHP SDK. Итак, мне было интересно разделить определенное изображение автоматически с facebook (например, http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1) на моей стене (/ me/links /). Итак, при запросе POST я отправляю параметры «источник» и «ссылка», ссылаясь как на один и тот же URL (URL-адрес изображения). Но я получаю OAuthException "(# 1500) Указанный вами URL недействителен".Невозможно обмениваться фотографиями с помощью Facebook API

Я разрешил разрешения «publish_stream» и «share_item», но самая неприятная вещь заключается в том, что, похоже, нет никаких проблем с моим кодом, но с настройками приложения каким-то образом, поскольку я получаю ту же ошибку если я использую API-интерфейс Graph API, создавая токен доступа с теми же разрешениями.

Что мне здесь не хватает?

Nevermind, теперь графический API-интерфейс работает отлично, я просто сгенерировал еще один токен, и он отлично работал. Таким образом, проблема может быть связана с кодом, поэтому вот оно:

$share = $facebook->api('/me/links', 'POST', array(
          'source' => urlencode($temp_test), 
          'link' => urlencode($temp_test), 
          )); 

Есть ли что-то не так?

ответ

1

Вы не можете использовать картинку, размещенную на facebook. Что вы можете сделать, скопируйте это изображение сначала на свой сервер с помощью функции PHP copy() и передайте, затем передайте URL-адрес изображения с вашего сервера.

i.e copy("http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1", "/folder location on your server/image.jpg"); 

$share = $facebook->api('/me/links', 'POST', array(
          'source' => "http://yourserver.com".$folder_path.$image, 
          'link' => urlencode($temp_test), 
          )); 
+0

А что, если я удалю «источник» и просто использую «ссылку»? Нужно ли мне копировать изображение на мой сервер? –

+0

И я знаю, что это становится немного стойким, но почему я могу поделиться имиджем (передав ссылку «ссылка» на картинку в facebook) в Graph API Explorer, но я не могу сделать это в своем приложении? –

+0

У вас нет очень хорошего представления об этом, но подумайте, есть ли у вас ссылка на изображение, но пользователь установил некоторую конфиденциальность на этом изображении, как можно разрешить публикацию этого изображения вашим приложением? –

1

Если у вас уже есть изображение в вашем альбоме на Facebook и хотите поделиться изображения на временной шкале или друг, то вы можете использовать object_attachment тег. Это, как вы делаете это в Obj-C:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            //         @"http://www.bitsonthego.com", @"link", 
            {image id of your image goes here}, @"object_attachment", 
            @"my profile", @"name", 
            @"description", @"description", 
            @"name of the post", @"name", 
            @"caption of my post", @"caption", 
            @"a message", @"message", 
            nil]; 

    [facebook requestWithGraphPath:@"/me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

Нет необходимости, чтобы сделать еще одну копию изображения или разместить его на месте.

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