1

Хорошо,Facebook Javascript API издаст альбом, но не закончить загрузку изображения

Так что я пытаюсь загрузить изображение в профиле пользователя, с помощью JavaScript SDK на Facebook. По сути, у меня есть работа, но не полностью.

Он добавит альбом к моим фотографиям, используя заголовок приложения, и это то, что я хочу. Однако он не добавит фотографию в альбом, указанный в параметре URL. См. Ниже:

// Create the album and add the image 
FB.api(
    "/me/photos", 
    "POST", 
{ 
    "url": "https://[VALID URL]" 
}, 
function (response) { 
    if (!response || response.error) { 
     // Log the error 
     console.log(response.error); 
    } else { 
     console.log(response); 
    } 
} 

Как я уже сказал, что-то работает, потому что альбом появляется в моем профиле. Но я возвращаю эту ошибку в консоли:

Object {message: "An unknown error has occurred.", type: "OAuthException", code: 1} 

Любая помощь была бы принята с благодарностью!

ОБНОВЛЕНИЕ: Я понял. См. Объяснение ниже.

ответ

3

Wow, gotta love the round-arounds.

Итак, моя проблема заключалась не в создании альбома, а в том, чтобы отправить его на этот альбом в функцию ответа. Таким образом, окончательный (рабочий) код выглядит следующим образом:

FB.api(
    "/me/albums", 
    "POST", 
    { 
     "name": "[Album Name]", 
     "message": "[Test Message]" 
    }, 
    function (response) { 
     if (!response || response.error) { 
     console.log(response.error); 
     } else { 
     // Get the album ID we just created 
     var albumID = response.id; 
     FB.api(
      "/" + albumID + "/photos", 
      "POST", 
      { 
       message: "Test message", 
       url: "[IMG URL]", 
       no_story: true 
      }, 
      function (response) { 
       if (!response || response.error) { 
       console.log(response.error); 
       } else { 
       console.log(response); 
       console.log(response.id); 
       } 
      } 
     ); 
     } 
    } 
); 

Работает как очарование!

+0

awesome thanks man .. –

+0

Это сработало! Спасибо человеку, что вы суперзвезда! – Sahan

+0

Спасибо Calvin Koepke Это сработало и для меня. На самом деле я хочу знать, что по этому коду альбом создан, и изображения также загружаются в альбом, но я хочу знать, как публиковать этот альбом с помощью графического API. Он отображается только в уведомлении о том, что альбом создан и загружены изображения. Благодарю. –

1

Создание альбомов и фотографий - это двухэтапный процесс в Graph API. Сначала вы создаете альбом, вот так:

$album_create = $facebook->api("/me/albums", 'POST', $album_params); 

Тогда вы можете посмотреть, чтобы увидеть, если есть идентификатор в ответ:

if (!array_key_exists('id', $album_create)) 
    return; //album not uploaded, may be an error 

Тогда вы размещаете на $ album_create [ „ID“]/photos edge, чтобы опубликовать фотографии.

Вышеупомянутые вызовы находятся в php, но вы должны легко преобразовать их в JS.

+0

Итак, я изначально создал альбом, а затем добавил фотографию, но второй вызов API создаст дополнительный альбом. Это потому, что я раньше не искал существующий альбом? –

+0

вы можете загрузить как существующий альбом, так и новый. Все, что вам нужно для публикации фотографий, это идентификатор альбома. – Ibrahim