使用 Twitter 登录 API [英] Using Twitter login API

查看:255
本文介绍了使用 Twitter 登录 API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to use https://api.periscope.tv/api/v2/loginTwitter to get a response from the server so that I can obtain a cookie for periscope API calls.

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

I have all of the required values for the request query, but I continue to get the "Bad Request" error (error code 400). Is anyone able to use the loginTwitter API still?

请求头:

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=81EA8A94504D-294DHTTP/1.1

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",oauth_signature_method="HMAC-SHA1",oauth_signature_method="HMAC-SHA1",oauth_xxx",oauth_xx",oauth_xxx",oauth_xxx",oauth_xx",oauth_xx",oauth_xoken",oauth_xoken",oauth_xxx", oauth_18845cd5121007232666/p>

OAuth oauth_consumer_key="xxxxxxxx",oauth_nonce="cecf203cda273c845cd5121007232666",oauth_signature="xxxxxxxx%3D",oauth_signature_method="HMAC-SHA1",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%26xxxname%xxxxxx%3%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

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

推荐答案

多亏了别人的帮助,我已经解决了这个问题.问题是我在 URL 中传递请求参数而不将它们编码为 json.对于任何希望解决此问题的人,这里是我使用 c# 得出的解决方案.

I have solved the problem thanks to help from another. The problem was that I was passing the request parameters in the URL without encoding them into json. For any that are looking to resolve this problem, here is the solution I arrived at with 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.

The result yields a cookie in the server's response.

有关此过程的更多详细信息,请参考:Periscope API 中的 Twitter 登录 POST 请求

Reference for more detail on this process: Twitter login POST request in Periscope API

这篇关于使用 Twitter 登录 API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆