Javascriptのfetchを使ってTwitterにログインし、
その後指定IDをフォローするプログラムを作成しています。
現在のコードは以下のようになっているのですが、
出力が「403 Forbidden: The server understood the request, but is refusing to fulfill it.」となり、
正常にフォローを行うことができておりません。
※token取得→ログインまでは行えております。フォローのみ出来ていない状況です。
var userid="...";//ここで自分のTwitterIDを入力しています。 var userpass="...";//ここで自分のTwitterPASSを入力しています。 var targetid="...";//ここでフォローする相手のIDを入力しています。 var twitter_token; fetch("https://twitter.com/",{ credentials: 'include' }).then(function(response) { return response.text(); }).then(function(text) { var getstring =text.match(/redirect_after_login" value=.+\s.+value="(\w+)"/); twitter_token=getstring[1];//token取得 //ログイン fetch("https://twitter.com/sessions", { method: 'POST', credentials: 'include', Referer:'https://twitter.com/', headers: { 'Content-Type': 'application/x-www-form-urlencoded','Referer': 'https://twitter.com/' }, body: 'session[username_or_email]='+userid + '&session[password]='+userpass+ '&remember_me=1&return_to_ssl=true&scribe_log='+ '&redirect_after_login=/&authenticity_token='+twitter_token }).then(function(response) { return response.text(); }).then(function(text) { //フォロー fetch("https://twitter.com/i/user/follow", { method: 'POST', credentials: 'include', Referer:'https://twitter.com/', headers: { 'Content-Type': 'application/x-www-form-urlencoded','Referer': 'https://twitter.com/' }, body: 'authenticity_token='+twitter_token+ '&challenges_passed=false'+ '&handles_challenges=1'+ '&impression_id='+ '&user_id='+targetid }).then(function(response) { return response.text(); }).then(function(text) { AddLog_test(text);//出力 }); }); });
「Twitterで403が返ってくるのは、Refererが設定されていないことが原因」
と聞いたことがありまして、
1.Referer:'https://twitter.com/',
2.headers: { 'Content-Type': 'application/x-www-form-urlencoded','Referer': 'https://twitter.com/' },
の2通りの方法でRefererを設定してみたのですが、
403が返ってきてフォローできない状況です。
(1のみ、2のみ、1と2両方 のいずれのパターンでも403が返ってきます。)
また、RefererをReferrerと記載しても結果は同じでした。
Refererの設定方法がまちがっているのか、
403を回避するためにはReferer以外の何かを設定しないといけないのか、など
こちらで調べても解決策が見つからず、行き詰まってしまいました。
どこを修正すれば403にならずにフォローできるのか
ご教授いただけると幸いですm(_ _)m
参考URL:http://qiita.com/tomoyukilabs/items/9b464c53450acc0b9574
あなたの回答
tips
プレビュー