質問: 下記URLを参考に、JavascriptのFetchでTwitterにログインするプログラムを作成しています。 http://qiita.com/tomoyukilabs/items/9b464c53450acc0b9574 ``` var twitter_token; var userid="twitterid";//自分のTwitterIDを入力しています。 var userpass="twitterpass";//自分のTwitterPASSを入力しています。 fetch("https://twitter.com/").then(function(response) { return response.text(); }).then(function(text) { var getstring =text.match(/redirect_after_login" value=.+\s.+value="(\w+)"/); twitter_token=getstring[1]; alert(twitter_token);//ここでTwitter_Tokenは取得できています。 //ここからログイン処理 fetch("https://twitter.com/sessions", { method: 'POST', //以下2つはクッキーを使用するとき。書いても状況変わらずなのでコメントアウト中です。 //mode: 'cors', //credentials: 'include', 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) { AddLog_test(text);//出力されたhtmlを画面に表示 }); }); ``` これで実行すると、↓のURLと同じ画面の状態になります。 https://twitter.com/login/ ユーザー名の所には userid の値が入っているのですが、 パスワードの所は空欄になっていました。 ※つまり、パスワードを間違えてログインした時に表示される画面と同じものが出力されています。 尚、冒頭で入力しているTwitterのIDとPASSは、間違いなく合っていることを確認しています。 どこが間違っているのか、どうすれば正しくログインできるのかご教授いただけると幸いです。 また、FetchではTwitterにログインできないよという場合は、 Twitterにログインを行える方法をご教授いただけると嬉しいです。 ※参照URLだけでも大変助かります。 よろしくお願い致します。m(_ _)m
回答: 両方の fetch で `credentials: 'include'` が必要じゃないですか? ブラウザの fetch で試したところ、token取得とheader、bodyの設定は問題ないようでした