Токен доступа Linked In для аутентификации пользовательских данных ASP. Net LinkedIn API - PullRequest
0 голосов
/ 09 марта 2020

Что ж, после долгого поиска в Google мне пришлось опубликовать очень старую проблему здесь, пожалуйста, скажите мне, где я делаю ошибку, мой код работает нормально до токен доступа

Я получение токена доступа успешно, но проблема при отправке токена доступа для получения сведений о пользователе

, вот мой код

  protected void btnlogin_Click(object sender, EventArgs e)
        {
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;


string LinkedInurl = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=" + LinkiedClientID + "&scope=r_basicprofile%20r_emailaddress&state=DCEEFWF45453sdffef424&redirect_uri=" + redirection_url + "";

     Response.Redirect(LinkedInurl);
        }

На другой странице load

защищенный void Page_Load (отправитель объекта, EventArgs e) {

        System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

        if (!IsPostBack)
        {
            if (Request.QueryString["code"] != null)
            {
                ///GetToken(Request.QueryString["code"].ToString());
                GetLinkedToken(Request.QueryString["code"].ToString());




            }
        }
    }



public void GetLinkedToken(string code)
        {



            string authUrl = "https://www.linkedin.com/uas/oauth2/accessToken";

            var sign = "grant_type=authorization_code" + "&code=" + code + "&redirect_uri=" + HttpUtility.HtmlEncode(redirection_url) + "&client_id=" + LinkiedClientID + "&client_secret=" + LinkiedClientPass;
            // var postData = String.Format("grant_type=authorization_code&code={0}&redirect_uri={1}&client_id={2}&client_secret={3}", code, HttpUtility.HtmlEncode(redirectUrl), apiKey, apiSecret);

            HttpWebRequest webRequest = WebRequest.Create(authUrl + "?" + sign) as HttpWebRequest;
            webRequest.Method = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded";

            Stream dataStream = webRequest.GetRequestStream();

            String postData = String.Empty;
            byte[] postArray = Encoding.ASCII.GetBytes(postData);

            dataStream.Write(postArray, 0, postArray.Length);
            dataStream.Close();

            WebResponse response = webRequest.GetResponse();
            dataStream = response.GetResponseStream();


            StreamReader responseReader = new StreamReader(dataStream);

            string responseFromServer=   responseReader.ReadToEnd().ToString();

        JavaScriptSerializer js = new JavaScriptSerializer();
            Tokenclass obj = js.Deserialize<Tokenclass>(responseFromServer);
            GetLinkeduserProfile(obj.access_token);


        }

--- До сих пор код работал отлично, но в GetLinkeduserProfile (obj.access_token) ; Я получаю ошибки

через некоторое время Удаленный сервер возвратил ошибку: (401) Несанкционировано.

и некоторое время 403

public void GetLinkeduserProfile(string accesstoken)
        {
string url = "https://api.linkedin.com/v1/people/firstName/?xoauth_oauth2_access_token=" + accesstoken + "&format=json";



HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded";

            Stream dataStream = webRequest.GetRequestStream();

            String postData = String.Empty;
            byte[] postArray = Encoding.ASCII.GetBytes(postData);

            dataStream.Write(postArray, 0, postArray.Length);
            dataStream.Close();

            WebResponse response = webRequest.GetResponse();
            dataStream = response.GetResponseStream();


            StreamReader responseReader = new StreamReader(dataStream);
            string responseFromServer = responseReader.ReadToEnd();
            responseReader.Close();
            response.Close();
            JavaScriptSerializer js = new JavaScriptSerializer();
            Userclass userinfo = js.Deserialize<Userclass>(responseFromServer);
            imgprofile.ImageUrl = userinfo.picture;
            lblid.Text = userinfo.id;
            lblgender.Text = userinfo.gender;
            lbllocale.Text = userinfo.locale;
            lblname.Text = userinfo.name;
            hylprofile.NavigateUrl = userinfo.link;
            hylprofile.Text = userinfo.email;



        }

Пожалуйста Эксперты , Помогите мне и скажите, где я делаю ошибку

...