Linear Algebra fans
Linear Algebra fans

Reputation: 101

twitter oauth error 401 Authorization Required in chrome extension

manifest:
{
  "name": "jQuery DOM",
  "version": "1",
  "manifest_version": 2,
  "description": "Manipulate the DOM when the page is done loading",
  "background_page": "background.html",
  "browser_action": {
    "name": "Manipulate DOM",
    "icons": ["icon.png"],
    "default_icon": "icon.png"
  },
  "content_scripts": [ {
    "js": [ "jquery.min.js", "background.js" ],
    "matches": [ "http://*/*", "https://*/*"]
  }]
}

background.js:

var time = new Date().getTime();

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }



xmlhttp.open("POST","https://api.twitter.com/oauth/request_token",true);
xmlhttp.setRequestHeader("oauth_callback","http://127.0.0.1:81");
xmlhttp.setRequestHeader("oauth_consumer_key","1xFLKhdwNEz3xfXXXXXXXXXXX");
xmlhttp.setRequestHeader("oauth_nonce",time);
xmlhttp.setRequestHeader("oauth_signature_method","HMAC-SHA1");
xmlhttp.setRequestHeader("oauth_timestamp",time);
xmlhttp.setRequestHeader("oauth_version","1.0");

xmlhttp.send();

request header:

:host:api.twitter.com :method:POST :path:/oauth/request_token :scheme:https :version:HTTP/1.1 accept:/ accept-encoding:gzip, deflate accept-language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4 content-length:0 cookie:pid="v3:14.......... oauth_callback:http://127.0.0.1:81 oauth_consumer_key:1xFLKhdwNEz3xfXXXXXXXXXXX oauth_nonce:1424942962828 oauth_signature_method:HMAC-SHA1 oauth_timestamp:1424942962828 oauth_version:1.0 origin:http://127.0.0.1:81 referer:http://127.0.0.1:81/ user-agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36

Any solution??? or I just fill in the parameter with wrong value or wrong parameter or wrong request method or chrome extension issues???

Upvotes: 1

Views: 309

Answers (1)

Sam
Sam

Reputation: 920

My suggestion would be to add permissions for certain website in your manifest.json. This worked for me for a similar issue.

For example:

"permissions": [
    ["<all_urls>"]
  ],

Upvotes: 0

Related Questions