-2

我正在尝试使用 API 从linkedin 获取评论

但是我在几个地方遇到了错误

谁能帮我解决一个错误?

我已经写了这段代码

 protected void Page_Load(object sender, EventArgs e)
    {
        var request = new RestRequest { Path = "posts?order=recency&category=discussion" };

        var credentials = new OAuthCredentials

        {
            ConsumerKey = "kmkzt9cqml1s", 
            ConsumerSecret = "hNiwIrZWGSMykoD2", 
        };


        var client = new RestClient()
        {
            Authority = "http://api.linkedin.com/v1/groups/345455/",
            Credentials = credentials//Here I'm getting an error
        };

        //Here how to create Request method
        var MyInfo = client.Request(request);

        String content = MyInfo.Content;

        string strURL = "http://api.linkedin.com/";
        System.Net.HttpWebRequest objWebRequest = null;
        System.Net.HttpWebResponse objWebResponse = null;
        System.IO.StreamReader streamReader = null;
        string strHTML = null;

        System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object s, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; };

        objWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strURL);
        objWebRequest.PreAuthenticate = true;
        objWebRequest.Method = "GET";

        objWebRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;

        objWebResponse = (System.Net.HttpWebResponse)objWebRequest.GetResponse();

        streamReader = new System.IO.StreamReader(objWebResponse.GetResponseStream());

        strHTML = streamReader.ReadToEnd();


        streamReader.Close();
        objWebResponse.Close();
        objWebRequest.Abort();

        Response.ContentType = "text/xml";
        Response.Write(strHTML);
        Response.End();

    }  

休息客户端.cs

 public class RestClient
  {
    private string _consumerKey = "";
    private string _consumerSecret = "";

    #region Properties
    public string Authority
    {
        get
        {
            return _consumerKey;
        }
        set { _consumerKey = value; }
    }

    //Here giving string
    public string Credentials
    {
        get
        {
            return _consumerSecret;
        }
        set { _consumerSecret = value; }
    }
    #endregion
}

如何创建 Request() 方法?有任何想法吗?提前致谢。

4

4 回答 4

0

RestClientCredentials属性是一个字符串;您的代码正在尝试将不是字符串(在您的情况下为 an OAuthCredentials)的内容放入其中。这是不允许的,因为这两种类型之间没有隐式转换。

于 2013-06-19T12:49:17.313 回答
0

In RestClient,Credentials是字符串,但您正在影响OAuthCredentials它 ( Credentials = credentials)。

尝试将属性(和支持字段)的类型更改CredentialsOAuthCredentials.

于 2013-06-19T12:49:30.883 回答
0

Credentials不是 type OAuthCredentials,它是 type string,所以你不能用你的credentials变量来分配它,它是 type OAuthCredentials。由于RestClient该类引用了一个名为 的变量_consumerSecret,等等,让我们假设您实际上想要这样做:

Authority = credentials.ConsumerKey;
Credentials = credentials.ConsumerSecret;
于 2013-06-19T12:49:54.137 回答
0

正如错误所说,您正在尝试将OAuthCredentials对象(凭据)分配给对象的字符串类型属性RestClient: Credentials

你必须要么做Credentials = credentials.toString()或改变RestClient类。

于 2013-06-19T12:50:14.250 回答