2016-07-26 42 views
1

SDK(PDK)を使用してPinterestに画像を投稿しようとしています。 board.id、 注: "説明"、 リンク: "リンク" 私が使用している具体的な方法は、Pinterest APIに画像を投稿する

PDK.request( '/ピン/' 'POST' {基板であります、 image_base64: "" }、 関数(e){ console.log(e); });

イメージを送信する3つのオプションがあります。

  1. オプションオブジェクトにimage_urlを送信します。マルチパートフォーム私はオプション2、それのためにオプション2と3を使用することができ、データ

Pinterest docs

を使用して私のコード

  • に示されているものであるimage_base64(データのURL)を送信
  • dataURLが大きくなりすぎるまで、小さな画像を処理します。これが発生したときにPinterest APIに役立つエラーはなく、これは私の推測だけです。

    代わりに、マルチパートのフォームデータを使用する方法がありますが、その方法はわかりません。

    マルチポストフォームデータを使用して画像を投稿する手助けができますか?

  • +0

    私も同じことをやろうとしており、ちょっと立ち往生しています。私は '新しいFormData'オブジェクトを作成して、ヘッダーにトークンを付けてXMLHttpRequestでPOSTしようとしました。私は、「No-Access-Control-Allow-Origin」ヘッダーが要求されたリソースに存在するというエラーが表示されました。 – MCaw

    +0

    authトークンを追加する場所のあなたのパラメータのコードスニペットを教えてください。私は現在PDKを使用しています、あなたは手作りのリクエストを使用していますか? –

    +0

    ええ、上で述べたエラーのためにうまくいきませんが、ここに私のコードのようなものがあります。 '//残りのフィールドは必要です ' ' form.append(' board '、board.id) ' ' form.append(' board '、board.id); ' image '、my_image); ' ' ajax = new XMLHttpRequest(); ' ' ajax.onload = handlePintRes; ' ' ajax.open(' POST '、' https://api.pinterest.com/v1/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

    関連する問題