質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

2954閲覧

C# POST通信でTwitterにログインする方法について

fama

総合スコア105

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/03/26 08:48

お読み頂きましてありがとうございます。
現在、C#言語を使用し、VisualStudioにてPOST通信(HttpClient)にてTwitterにログインするという処理を実装しております。

C#

1 twitterParam twiParam = new twitterParam(); 2 var cookie_container = new CookieContainer(); 3 using (var handler = new HttpClientHandler() 4 { 5 CookieContainer = cookie_container 6 }) 7 8 using (var client = new HttpClient(handler)) 9 { 10 var htmlTwitter = await client.GetStringAsync("https://twitter.com/"); 11 var regexTokenAdd = new Regex(@"name=""redirect_after_login"" value=.*?value=""(.*?)"".*?name=""ui_metrics_seed"" value=""(.*?)"" autocomplete", RegexOptions.Singleline);//, RegexOptions.Singleline); 12 Match regexMatch = regexTokenAdd.Match(htmlTwitter); 13 //取得成功 14 if (regexMatch.Success) 15 { 16 twiParam.tokenGetSet = regexMatch.Groups[1].Value.Trim(); 17 twiParam.metricsGetSet = regexMatch.Groups[2].Value.Trim(); 18 } 19 client.DefaultRequestHeaders.Referrer = new Uri("https://twitter.com/signup"); 20 21 string myid; 22 string mypass; 23 24 string data = ListLogindata[0]; 25 int pointid = data.IndexOf(","); 26 myid = data.Remove(pointid); 27 mypass = data.Remove(0, pointid).Replace(",", ""); 28 29 string tid = textBox_Target.Text; //指定ID(screen_name) 30 31 var values = new Dictionary<string, string> 32 { 33 { "session[username_or_email]", myid }, 34 { "session[password]", mypass }, 35 { "return_to_ssl", "true"}, 36 { "scribe_log", "" }, 37 { "redirect_after_login", "/"}, 38 { "authenticity_token",twiParam.tokenGetSet }, 39 //毎回値は変わるみたいだが、同じものでもログインは出来る 40 { "ui_metrics","{{\"tt\":26167,\"v\":2,\"gts\":1453481367006,\"h\":\"f289b49e\",\"b\":\"461c4f2c34252a2a36647d136b243b3c29287c627f363f38777a7536292a3f3a6e6c71040d0e41484708172f06050c00083b1f14100616475b121b145b5659322d2d2fd7d3c3d3aac1cacbaaa5a8e5fce1effce4e1f3e0e7bbf2fbf4bbb6b9d2cdcdc8e69290fc9695f997f799f599949b80cbdcdd909f96fbe6e4efff8989e38f8ee0f09ef29cf6f3f1e9aca5a6e9e0efa0bfb3a5a0bffab1babbfa84f6f9ada8b7ad8b92cc97819d92c5d29d989e89c1cc9e8598809887db849295968c9edec78a8d75642e2175706f75637a247969606179755f7d7771372c717975697e303f6d7c5244474d0a46494b475b6e4e5c59460d0a03061f164655455d5c541554585758283560797c73726b6a3a293929282061273836273c776c666d6a6c777e333f29090603170b17480b09070d1e0d0a0b4d4a53181256595419190f131c1d09110daef1eee2f0e3e9f5e5abb0a9dbe4e0bca2b3beb1faf4e0fefff8eef4eeb3eeedcfc5d7c0d0879c85efccc9c0c38f828dc7d8dcd7dbc298dbd7dadbd7efc9d1cda1a6a7e1feb1b4b2ade5e8bca5a3aaa0a7ffa1b6a7a6bfb8b68aaeb4aebcb9bac2db96919180cac59f80848f839ac0869e95978b9191b2b5dac38e89899883\",\"hj\":{{\"rf\":{{\"d721a6e9b5eea58dcbd56774b03b597a9a3f63f3f13f3d2118b7fea50ed28cd3\":-19,\"c1b975ff181d110d86dfda4dd790377a0cceb2674a55482cf170f208ed6be003\":-95,\"a474437595447eb672fb672897d5748c69036abcc496b6536e5f129b2c01ed92\":-118,\"af291687a7c54a49702e8f9eafc5eff1db585eda259ab61d0706635a735985c1\":-17}},\"s\":\"w7MZ373DWgzzRAHib8rWjBDDwUhkZp3RCyxN6Z9LWnC8B4_u3sV87Mi8A9mp-rmZA95AnLF1pN9UHra65NNEbkfZk6P5gVIqOQJKomM_u6eowPh8evrU_9iopfl-Sv4Ves1o2db6O9Fl8He8lknt4q1nYQaP10xnXSw2RZHFNxWGbimM9LtazcJ7Vl-pVTW_Kktc4jQfs3sHNFHst7nVyyqC8hlbaQG8bq3osWDYe2DsNnRNrW03-mhBte_G-wOj9BcdXA89xS4oua1870TZMlmTwzlJiNvQfEDbE_SMq7UvOKrFVcqWaqwCbOJc1Jh5kKqONoUGvKTmq_iUaIa7oAAAAVJqPZ-L\"}}}}"}, 41 { "ui_metrics_seed", twiParam.metricsGetSet }, 42 { "js_inst","1"}, 43 }; 44 var content = new FormUrlEncodedContent(values); 45 var response = await client.PostAsync("https://twitter.com/sessions", content); 46 var responseString = await response.Content.ReadAsStringAsync(); 47 48 Encoding sjisEnc2 = Encoding.GetEncoding("Shift_JIS"); 49 StreamWriter writer2 = new StreamWriter(@"sorce.txt", false, sjisEnc2); 50 writer2.WriteLine(responseString); 51 writer2.Close();

このように記述する事でこれまで問題なくログイン処理ができていたのですが、今朝から急にログインが出来なくなりました。
考えれる原因は、Twitterのログインページのパラメータが変わっているのではないかという事なのですが、自分で調べてみても解決が出来ませんでした。

Twitterへログインするという処理だけなのですが、このコードを読んで間違えを指摘して頂ける方はいらっしゃいませんでしょうか?かれこれ数時間色々と調べたりちょっとした修正を行ってみたりチャレンジをしているのですが、なかなか解決が出来ません。

是非アドバイス頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

POSTで投げるパラメータの構成はかわってないようですので、twiParam.tokenGetSetあたりがとれてないんじゃないでしょうか?

投稿2016/03/26 09:49

umed0025

総合スコア851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fama

2016/03/26 10:17

まったくその通りでした!アドバイス頂きましてありがとうございます! 1つ1つしっかり見ていく事が肝心ですね!!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問