Что ж, после долгого поиска в 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;
}
Пожалуйста Эксперты , Помогите мне и скажите, где я делаю ошибку