(OAuthException – #2500)必须使用活动访问令牌来查询有关当前用户的信息
string accessToken = GetAccessToken(); string accessKey = accessToken.Split('=')[1]; var client = new FacebookClient(accessKey); dynamic me = client.Get("me");
这是获取访问令牌的方法,它确实返回了一个有效的访问令牌
private static string GetAccessToken() { // Create a request using a URL that can receive a post. WebRequest request = WebRequest.Create("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=201193246663533&client_secret=secretkeyhere"); // Set the Method property of the request to POST. request.Method = "POST"; // Create POST data and convert it to a byte array. string postData = "This is a test that posts this string to a Web server."; byte[] byteArray = Encoding.UTF8.GetBytes(postData); // Set the ContentType property of the WebRequest. request.ContentType = "application/x-www-form-urlencoded"; // Set the ContentLength property of the WebRequest. request.ContentLength = byteArray.Length; // Get the request stream. Stream dataStream = request.GetRequestStream(); // Write the data to the request stream. dataStream.Write(byteArray, 0, byteArray.Length); // Close the Stream object. dataStream.Close(); // Get the response. WebResponse response = request.GetResponse(); // Display the status. Console.WriteLine(((HttpWebResponse)response).StatusDescription); // Get the stream containing content returned by the server. dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. string responseFromServer = reader.ReadToEnd(); // Display the content. Console.WriteLine(responseFromServer); // Clean up the streams. reader.Close(); dataStream.Close(); response.Close(); return responseFromServer; }
但是,当我调试时
dynamic me = client.Get("me");
抛出此exception:
(OAuthException – #2500)必须使用活动访问令牌来查询有关当前用户的信息。
我怎样才能解决这个问题?
您将获得APPLICATION的访问令牌,而不是用户。 因此,“我”没有意义。 您应该在那里提供ID – 您的用户ID,或您的应用ID,或您的应用拥有权限的任何其他ID。
两个调用都适用于您的示例:
dynamic me = client.Get("1000<>5735"); dynamic theApp = client.Get("201193246663533");