お読み頂きましてありがとうございます。
現在、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へログインするという処理だけなのですが、このコードを読んで間違えを指摘して頂ける方はいらっしゃいませんでしょうか?かれこれ数時間色々と調べたりちょっとした修正を行ってみたりチャレンジをしているのですが、なかなか解決が出来ません。
是非アドバイス頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/26 10:17