0

React JS アプリケーションに Sendinblue API を実装しようとしています。ユーザーが電子メールを入力するテキスト入力と、電子メールを Sendinblue リストに追加するボタンがあります。React アプリに JavaScript コードを使用しているため、ここNode.js にある「連絡先の作成」リファレンスを使用しています。電子メールが SendinBlue リストに正常に追加されるため、このコードが機能する場合もありますが、ほとんどの場合、電子メールは追加されず、次のエラーが表示されます。

TypeError: Failed to fetch

メールがテキストフィールドから入力されている私の完全なコードを以下に示します。

var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.sendinblue.com/v3/contacts',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': 'My SendinBlue Application API Key'
  },
  body: {updateEnabled: false, email: 'newEmail@exampleWebsite.com'},
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Sendinblue API ドキュメントでこれをテストすると、毎回連絡先リストにメールが正常に追加されます。毎回新しいメールでテストして、重複したメールが原因でエラーが発生しないことを確認しています。updateEnabledbetweenの値も調整しましたが、この問題の解決truefalseは役立たないようです。

React メソッドなのか Node.js メソッドなのかvar request = require("request");わからないため、エラーは最初の行のコマンドに起因する可能性があると考えています。require

これを修正する方法について誰かがアイデアを持っている場合は、あなたの助けをいただければ幸いです。ありがとうございました。

4

1 に答える 1

2

そうですrequire、Node.js に使用され、Sendinblue リファレンスの例でも言及されています。axios代わりに使用してみてください。React プロジェクトの他の npm モジュールと同じようにインストールしnpm install axiosて、次のスクリプトを試してください。

const response = await axios.post(
  'https://api.sendinblue.com/v3/contacts',
  { updateEnabled: false, email: 'newEmail@exampleWebsite.com'},
  { headers: { 'Content-Type': 'application/json', 'api-key': 'My SendinBlue Application API Key' } }
)
console.log(response.data)

それが役立つかどうか教えてください!ありがとう

于 2020-08-12T09:26:44.623 に答える