Wednesday, 7 June 2017

Instagram realtime OAuthParameterException: missing client_id or access_token URL parameter. in _request

I'm trying to set up Instagram real-time subscriptions. I'm new to NodeJS so thought to set up project from GitHub. I have tried several repos, they all end up with the same error.

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

I am currently using the code from: https://github.com/weblancaster/instagram-real-time

I started by registering my app, I set up a heroku instance for my callback url, obtained access_token with scope public_content and follower_list.

In server.js, I replaced YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with my client_id and client_secret values obtained from https://www.instagram.com/developer/clients/manage/ Additionally I added value for my access_token, as the documentation states

The Instagram API requires an access_token from authenticated users for each endpoint. We no longer support making requests using just the client_id.

Next I attempt to subscribe a tag (lines 38-45). This results in error message

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

ATTEMPTS TO RESOLVE THE ERROR:

as suggested here, I added the following line of code in Instagram-node-lib/lib/class.instagram.js . This did not resolve the error.

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

I modified the subscription function in Instagram-node-lib/lib/class.instagram.subscription.js to include verify_token. This too did not resolve the error.

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);
        };

The 2 changes above in Instagram-node-lib were compiled using

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

my package.json with updated versions of node, nom, instagram-node-lib is as below.

{
  "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"
  }
}

I am not sure what I'm missing. Any help with the error is much appreciated.

P.S. I've encountered the same error with this project aswell.



via zunman

No comments:

Post a Comment