2016-07-26 64 views
1

我试图使用其SDK(PDK)将图像发布到Pinterest。我使用的具体方法是将图像发布到Pinterest API

PDK.request( '/销/', 'POST', { 板:board.id, 注: “描述”, 链接: “链接” }, function(e){ console.log(e); });

有三种发送图像的选项。

  1. 在选项对象中发送image_url。
  2. 发送image_base64(数据URL),其是什么是使用多部分形式的数据

Pinterest docs

我只能用选项2和3的选项2在我的代码

  • 所示适用于小图像,直到dataURL变得太大。 Pinterest API在发生这种情况时没有任何有用的错误,这只是我的猜测。

    另一种方法是使用多部分表单数据,但我不知道该怎么做。

    有人可以帮我张贴使用多部分表格数据的图像发布?

  • +0

    我正在尝试做同样的事情,并得到了一点卡住。我试着创建一个新的FormData对象,并用标头中的令牌在XMLHttpRequest中发布它。我结束了一个错误,说'没有'Access-Control-Allow-Origin'标题出现在请求的资源中。“ – MCaw

    +0

    你介意给我一个你的params的代码片段,尤其是你会添加auth令牌吗?我目前正在使用PDK,您是否使用手工制作的要求? –

    +0

    是的,它不起作用,因为我上面提到的错误,但这里是我的代码看起来像一个主意。 'let form = new FormData();' ''form.append('board',board.id);' '// ...我需要的其余字段' 'form.append('图片',my_image);' 'let ajax = new XMLHttpRequest();' 'ajax.onload = handlePintRes;' 'ajax.open('POST','https://api.pinterest.com/v1/pins /?access_token ='+ token);' 'ajax.setRequestHeader('Authorization','BEARER'+ token);' '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