Instagram в реальном времени OAuthParameterException: отсутствует параметр client_id или URL-адреса access_token. в запросе

1

Я пытаюсь настроить подписку на Instagram в режиме реального времени. Я новичок в NodeJS, поэтому решил настроить проект из GitHub. Я пробовал несколько репозиториев, все они имеют ту же ошибку.

OAuthParameterException occurred: Missing client_id or access_token URL parameter. in _request

В настоящее время я использую код: https://github.com/weblancaster/instagram-real-time

Я начал с регистрации моего приложения, я настроил экземпляр heroku для моего обратного URL-адреса, получив access_token с областью public_content и follower_list.

В server.js я заменил YOUR_CLIENT_ID и YOUR_CLIENT_SECRET моими значениями client_id и client_secret, полученными с https://www.instagram.com/developer/clients/manage/. Кроме того, я добавил значение для моего access_token, поскольку в документации указано

API Instagram требует, чтобы access_token из аутентифицированных пользователей для каждой конечной точки. Мы больше не поддерживаем запросы, используя только client_id.

Затем я пытаюсь подписаться на тег (строки 38-45). В результате появляется сообщение об ошибке

OAuthParameterException occurred: Missing client_id or access_token URL parameter. in _request

ПОПЫТКИ ДЛЯ РЕШЕНИЯ ОШИБКИ:

как было предложено здесь, я добавил следующую строку кода в Instagram-node-lib/lib/class.instagram.js. Это не разрешило ошибку.

options['headers']['Content-Type'] = 'application/x-www-form-urlencoded';

Я изменил функцию подписки в Instagram-node-lib/lib/class.instagram.subscription.js, чтобы включить verify_token. Это также не разрешило ошибку.

InstagramSubscriptions.prototype._subscribe = function(params) {
          var i, _i, _len, _ref;
          params['method'] = "POST";
          params['path'] = "/" + this.parent._api_version + "/subscriptions/";
          if ((typeof params['callback_url'] === 'undefined' || params['callback_url'] === null) && this.parent._config.callback_url !== null) {
            params['callback_url'] = this.parent._config.callback_url;
          }
          params['post_data'] = {
            object: params['object'],
            aspect: 'media',
            client_id: this.parent._config.client_id,
            client_secret: this.parent._config.client_secret,
            verify_token: this.parent._config.access_token,
            callback_url: params['callback_url']
          };
          _ref = ['object_id', 'verify_token', 'lat', 'lng', 'radius'];
          for (_i = 0, _len = _ref.length; _i < _len; _i++) {
            i = _ref[_i];
            if (params[i] != null) {
              params['post_data'][i] = params[i];
            }
          }
          return this.parent._request(params);
        };

2 изменения выше в Instagram-node-lib были скомпилированы с использованием

install npm --save https://github.com/zunman/instagram-node-lib/tarball/master

my package.json с обновленными версиями node, nom, instagram-node-lib приведен ниже.

{
  "name": "RealTimeInstagram",
  "version": "0.0.1",
  "description": "Real time instagram",
  "author": "Michael Lancaster",
  "dependencies": {
    "express": "3.21.2",
    "instagram-node-lib": "https://github.com/zunman/instagram-node-lib/tarball/master",
    "jade": "1.3.1",
    "request": "2.34.0",
    "socket.io": "1.7.4"
  },
  "engines": {
    "node": "6.9.1",
    "npm": "3.10.8"
  }
}

Я не уверен, что мне не хватает. Любая помощь с ошибкой очень ценится.

PS Я также столкнулся с такой же ошибкой и с этим проектом.

Теги:
instagram

1 ответ

1

API Instagram больше не поддерживает подписку на теги: https://www.instagram.com/developer/changelog/

Приложения, созданные после или после 17 ноября 2015 г.

  • ...

  • Отмена подписки на Realtime для тегов, местоположений и географических регионов

Не уверен, почему они это сделали, но даже если вы избавитесь от этой ошибки, вы не будете получать обновления тегов.

Я пытался сделать то же самое, но для меня работала следующая строка (по крайней мере, в отношении вывода ошибки, потому что в моем приложении ничего не было уведомлено):

options['headers']['Content-Type'] = 'application/x-www-form-urlencoded';

Вероятно, вы можете работать с конечной точкой последнего медиатега (https://www.instagram.com/developer/endpoints/tags/#get_tags_media_recent), используя таймер или что-то в своем приложении и время от времени проводите поиск, Не лучший мир, но он должен работать.

  • 0
    Спасибо за ваш ответ. Я попробую последние медиа-теги
  • 0
    Я все еще получаю ту же ошибку. Тем не менее, это помогает узнать, что подписка в реальном времени по тегу, местоположению, географии устарела. Мой случай использования включал подписку на географию. Спасибо за вашу помощь @L. Shimizu
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню