私はSummryを実装していますが、PHP APIの接続例のみを提供しています。誰かがJSリクエストに応じる可能性はありますか?PHP cURLリクエストをnode.jsに変換する
私は本質的には、私がそれを与えるテキストをパースすることを望みます。
私は、どのようなCURLOPT_POSTFIELDS
と、CURLOPT_HTTPHEADER
がJSリクエストで一致するかを調べようとしましたが、無駄です。私はおそらく間違った場所を探しています。
PHPの例
$long_article = "Long article text goes here";
$ch = curl_init("http://api.smmry.com/&SM_API_KEY=XXXXXXXXX&SM_LENGTH=14&SM_WITH_BREAK");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:")); // Important do not remove
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "sm_api_input=".$long_article);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$return = json_decode(curl_exec($ch), true);
curl_close($ch);
私は取得していますエラーはので、私は、少なくとも右のURLを打ってる{ sm_api_error: 1, sm_api_message: 'INSUFFICIENT VARIABLES' }
ではJavaScript複製
...
const request = require('request-promise');
...
const long_article = 'Long article text goes here';
const r = request({
method: 'POST',
uri: `http://api.smmry.com/&SM_API_KEY=${process.env.SMMRY_API_KEY}`,
// headers: { Authorization: 'array(Expect:)' },
// body: { sm_api_input: long_article },
json: true,
});
request(r)
.then((parsedBody) => { debug(parsedBody); })
.catch((err) => { debug(err); });
- それはですので、開始:
ありがとうございます!
Ollie第
助けてくれてありがとうございました。QSは「&」記号になっているようです。他のapiルートも完璧に動作しているようです。「uri:http://api.smmry.com/&SM_API_KEY=${process.env.SMMRY_API_KEY}&SM_URL=http://www.bbc.co.uk/news/uk-england -oxfordshire-42238343'は本当に奇妙です。 私は上記の要求を受けました(あなたは 'uriの後に厄介なカンマが必要です)、私はまだ秘密の{{sm_api_error:1、sm_api_message: '不完全な変容'}'を得ています。 ありがとうございます:) – Ollie
@Ollieリクエストに必要なすべての変数を渡していますか?これらのドキュメントを見ると、あなたのURIはあなたの 'request()'オプションでは正しくありません。私の答えをもう一度見て、更新されたURIを見て、それが動作するかどうかを見てください。 – peteb
私はそれが働いている! apiキー以外のものはオプションです。 'body'から' form'に変更すると、完璧に動作します。 'uri:http://api.smmry.com/&SM_API_KEY=${process.env。SMMRY_API_KEY}、 形式:{sm_api_input} '、 あなたはそのフォーム+ URIに質問を編集した場合、私は正しいと:) – Ollie