PHPのCURL経由でbase64エンコードされたファイルとJSONを送信します
P粉139351297
P粉139351297 2023-08-28 10:22:44
0
1
639
<p>CURL を使用して、Create Document from File API 呼び出し経由で PANDADOCS にファイルを送信しようとしています: https://developers.pandadoc.com/reference/create-document-from-pdf。 </p> <p>ファイルの送信に加えて、JSON の multipart/form-data 文字列の一部として受信者などを含むデータ オブジェクトも送信する必要があります。この呼び出しを正しく設定する方法がわかりません。API から「ファイルという名前のフィールドが存在します」</p> などのさまざまなエラー メッセージが返され続けます。 <p>これは私がこれまでに持っているものです: </p> <pre class="brush:php;toolbar:false;">パブリック関数 createDocument() { $p = getmypid(); $m = "({$p}): PandaDoc::ドキュメントの作成: "; $postfields = 配列(); $postfields['name'] = $this->document->name; $postfields['file'] = $this->document->file; //base 64 エンコードされた PDF $受信者 = 配列( 配列( '電子メール' => 'a.mcdoogle@test.com', 'first_name' => 'アンドリュー', 'last_name' => 'マクドゥーグル', 「ロール」 => 「ユーザー」、 '署名順序' => 1 ) ); $data = 配列(); $data['受信者'] = $受信者; $owner = 配列( 「電子メール」 => 「john@example.com」 ); $data['owner'] = $owner; $postfields['data'] = json_encode($data); $header = array("Authorization: API キー {$this->api_key}", "Content-Type: multipart/form-data", "accept" => "application/json") ; $ch =curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_URL, $this->url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); $res =curl_exec($ch); if ($res === false) { $errno =curl_errno($ch); $error =curl_error($ch); error_log("{$m}cURL エラー: {$error} ({$errno})"); throw new Exception("{$m}cURL エラー: {$error} ({$errno})"); } $httpcode =curl_getinfo($ch, CURLINFO_HTTP_CODE); カール_クローズ ($ch); error_log("{$m}PandaDoc からの結果: {$res}"); $response = json_decode($res); $response を返します。 }</pre> <p>誰か私が間違っていることを教えてくれませんか? </p>
P粉139351297
P粉139351297

全員に返信(1)
P粉848442185

###これは間違っています:### リーリー

API ドキュメントは気になるものだと思います。

短いチュートリアル:

これは単純なマルチパート/フォームデータの HTML フォームです:

以下では、このフォームをカールに変換します。

リーリー
これをcurlで送信するには、フォームデータをポストフィールドに入れる必要があります。

リーリー

これはリクエストヘッダーです:

リーリー

これはリクエスト本文です:

リーリー

PDF を次のように Base64 エンコードします:
リーリー

PandaDoc APIの場合

これはドキュメント フィールドです。上記の $pdf に注意してください。
リーリー

コンテンツ タイプは

application/pdf;base64

である必要がある場合があります 彼らの例ではバイナリ データが使用されています。
これはあなたのデータフィールドです

リーリー

出典:

https://developers.pandadoc.com /docs/upload-and-send-a-local-pdf

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート