Есть ли какая-либо функция или модуль для правильного форматирования подписанных URL-адресов, чтобы они были приняты в Graph API? - PullRequest
0 голосов
/ 09 ноября 2019

Мне нужно отправить несколько изображений через Facebook GraphAPI. Эти изображения хранятся в облачном хранилище Google и публикуются с помощью подписи URL всего на один день. Эти подписанные URL-адреса отклоняются GraphAPI.

Я попробовал то, что сказал об использовании подписанного URL-адреса (подписанные URL-адреса генерируются модулем Node JS Google Cloud Storage), и я также использовал общедоступный URL-адрес: "https://encrypted -tbn0.gstatic! NodeJS использует модуль запрос-обещание. Вот код запроса:

const request_body = {
  recipient: {
    id: 'a facebookID goes here'
  },
  message: JSON.stringify({
    metadata: `{ "messageUUID": "a uuid goes here" , "fileID": "a fileID goes here", "fileContentType": "a content type goes here"}`,
    attachment: {
      type: 'image',
      payload: {
        is_reusable: true,
        url: 'a url goes here'
      }
    },
  });
};

let options = {
  uri: 'https://graph.facebook.com/v5.0/me/messages',
  qs: { access_token: 'an access token goes hete' },
      method: 'POST',
      json: request_body
};

Когда URL является SignedURl из Google Cloud Storage, я получаю сообщение об ошибке:

StatusCodeError: 400 - {"error":{"message":"(#100) Upload attachment failure.","type":"OAuthException","code":100,"error_subcode":2018047}}

Когда URL является общедоступным URLизображение загружено правильно и его можно увидеть в диалоге Facebook Messenger.

Я не знаю, что еще делать. Кто-нибудь что-то получил?

...