2016-07-26 5 views
1

Я пытаюсь опубликовать изображение на Pinterest, используя их SDK (PDK). Конкретный метод я используюПубликация изображения на Pinterest API

PDK.request ('/ контакты /', 'POST', { доска: board.id, примечание: "Описание", ссылка: "ссылка" , image_base64: "" }, функция (e) { console.log (e); });

Есть три способа отправить изображение.

  1. отправив изображение_url в объект options.
  2. отправки image_base64 (URL данных), которая является то, что показано в моем коде
  3. используя многокомпонентные данные формы

Pinterest docs

я могу использовать только варианты 2 и 3. Для вариантов 2 это работает для небольших изображений, пока данныеURL не станут слишком большими. Pinterest API не имеет никаких полезных ошибок, когда это происходит, и это только мои предположения.

Альтернативой является использование данных с несколькими формами, но я не уверен, как это сделать.

Может ли кто-нибудь помочь мне размещать сообщения с использованием данных многостраничной формы для публикации изображений?

+0

Я тоже пытаюсь сделать то же самое и немного застрял. Я пробовал создать новый объект FormData и POSTing его с XMLHttpRequest с токеном в заголовке. Я закончил с ошибкой, говорящей, что заголовок 'No 'Access-Control-Allow-Origin' присутствует на запрошенном ресурсе.' – MCaw

+0

не могли бы вы дать мне фрагмент кода ваших параметров, особенно если вы добавите токен auth? В настоящее время я использую PDK, вы используете ручной запрос? –

+0

Да, это не работает из-за ошибки, о которой я упоминал выше, но вот суть моего кода. 'let form = new FormData();' 'form.append ('board', board.id);' '// ... остальные поля мне нужны' ' form.append (' image ', my_image); ' ' let ajax = new XMLHttpRequest(); ' ' ajax.onload = handlePintRes; ' ' ajax.open (' POST ',' https://api.pinterest.com/v1/pins /? access_token = '+ токен); ' ' ajax.setRequestHeader (' Авторизация ',' BEARER '+ токен); ' ' ajax.send (form); ' – MCaw

ответ

2

Я также не мог сделать их SDK работы, но я отсортирован это, по крайней мере, для dataurl:

var sendForm = new FormData(); 
sendForm.append('board', pathname); 
sendForm.append('note', label); 
sendForm.append('link', linkURL); 
sendForm.append('image_base64', dataUrl); 

var url = "https://api.pinterest.com/v1/pins/?access_token=" + window.pinterestAccessToken; 

$.ajax({ 
    url: url, 
    data: sendForm, 
    processData: false, //this is very important for making sure the formdata object is sent in the correct format 
    contentType: false, 
    type: 'POST' 
}); 

Надеется, что это помогает.

+0

Это был единственный способ, который работал и для меня. Когда я попытался с помощью решения base64, у меня возникла ошибка при перекрестном происхождении и строка с длинной ошибкой – Empi

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