使用Twitter登录API

时间:2016-09-25 07:48:59

标签: api twitter oauth

我正在尝试使用https://api.periscope.tv/api/v2/loginTwitter从服务器获取响应,以便我可以获取periscope API调用的cookie。

我拥有请求查询所需的所有值,但我仍然会收到"错误请求"错误(错误代码400)。有人能够使用loginTwitter API吗?

请求标题:

  

POST /api/v2/loginTwitter?bundle_id=com.bountylabs.periscope&phone_number=&session_key=xxxxxxxx&session_secret=xxxxxxxx&user_id=xxxxxxxx&user_name=xxxxxxxx&vendor_id=81EA8A9B-2950-40CD-9365-40535404DDE4 HTTP / 1.1

授权:

  

OAuth oauth_consumer_key =" xxxxxxxx",oauth_nonce =" cecf203cda273c845cd5121007232666",oauth_signature =" xxxxxxxx%3D",oauth_signature_method =" HMAC-SHA1&#34 ;,oauth_timestamp =" 1474786616",组oauth_token =" XXXXXXXX",oauth_version =" 1.0"

Oauth签名:

  

POST&安培; HTTPS%3A%2F%2Fapi.periscope.tv%2Fapi%2Fv2%2FloginTwitter%3Fbundle_id%3Dcom.bountylabs.periscope%26phone_number%3D%26session_key%XXXXXXXX%26session_secret%3xxxxxxxx%26user_id%3xxxxxxxx%26user_name%XXXXXXXX %26vendor_id%3D81EA8A9B-2950-40CD-9365-40535404DDE4&安培; bundle_ID的%3Dcom.bountylabs.periscope%26oauth_consumer_key%3xxxxxxxx%26oauth_nonce%3Dcecf203cda273c845cd5121007232666%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1474786616%26oauth_token%XXXXXXXX%26oauth_version%3D1.0%26phone_number %3D%26session_key%xxxxxxxxMX%26session_secret%xxxxxxxxt%26user_id%xxxxxxxx4%26user_name%XXXXXXXX%26vendor_id%3D81EA8A9B-2950-40CD-9365-40535404DDE4

1 个答案:

答案 0 :(得分:0)

我在另一个人的帮助下解决了这个问题。问题是我在URL中传递请求参数而没有将它们编码为json。对于任何想要解决这个问题的人来说,这是我用c#到达的解决方案。

            var httpWebRequest = ( HttpWebRequest )WebRequest.Create( "https://api.periscope.tv/api/v2/loginTwitter" );
            httpWebRequest.ContentType = "application/json; charset=UTF-8";
            httpWebRequest.Method = "POST";

            using( var streamWriter = new StreamWriter( httpWebRequest.GetRequestStream() ) ){
                string json = "{" + 
                    "\"bundle_id\":\"com.bountylabs.periscope\"," +
                    "\"phone_number\":\"\"," +
                    "\"session_key\":\""+final_oauth_token+"\"," +
                    "\"session_secret\":\""+final_oauth_token_secret+"\"," +
                    "\"user_id\":\""+user_id+"\"," +
                    "\"user_name\":\""+screen_name+"\"," +
                    "\"vendor_id\":\"81EA8A9B-2950-40CD-9365-40535404DDE4\"" +
                    "}";

                streamWriter.Write( json );
                streamWriter.Flush();
                streamWriter.Close();
            }

            var httpResponse = ( HttpWebResponse )httpWebRequest.GetResponse();
            using( var streamReader = new StreamReader( httpResponse.GetResponseStream() ) ){
                var result = streamReader.ReadToEnd();
                display.Text = "cookie: "+result;
            }
        }

结果会在服务器的响应中产生一个cookie。

有关此流程的详细信息,请参阅:Twitter login POST request in Periscope API