Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Twitter发送直接消息C#_C#_Asp.net_Twitter - Fatal编程技术网

Twitter发送直接消息C#

Twitter发送直接消息C#,c#,asp.net,twitter,C#,Asp.net,Twitter,我正在使用以下代码向我的另一个ID发送消息。有人能解释一下我遗漏了什么吗。这两个帐户都是对方的追随者,并且该选项还可以接收来自每个人的直接消息 private static void sendMessage(string message) { //The facebook json url to update the status string facebookURL = "https://api.twitter.com/1.1/direct_messages/new.json?

我正在使用以下代码向我的另一个ID发送消息。有人能解释一下我遗漏了什么吗。这两个帐户都是对方的追随者,并且该选项还可以接收来自每个人的直接消息

private static void sendMessage(string message)
{
    //The facebook json url to update the status
    string facebookURL = "https://api.twitter.com/1.1/direct_messages/new.json?user_id=1699575980&screen_name=MuneebZulfee&text=some message";

    //set the access tokens (REQUIRED)
    string oauth_consumer_key = "**************************";
    string oauth_consumer_secret = "***************************";
    string oauth_token = "******************************";
    string oauth_token_secret = "*****************************";

    // set the oauth version and signature method
    string oauth_version = "1.0";
    string oauth_signature_method = "HMAC-SHA1";

    // create unique request details
    string oauth_nonce = Convert.ToBase64String(new ASCIIEncoding().GetBytes(DateTime.Now.Ticks.ToString()));
    System.TimeSpan timeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));
    string oauth_timestamp = Convert.ToInt64(timeSpan.TotalSeconds).ToString();

    // create oauth signature
    string baseFormat = "oauth_consumer_key={0}&oauth_nonce={1}&oauth_signature_method={2}" + "&oauth_timestamp={3}&oauth_token={4}&oauth_version={5}&screen_name={6}&text={7}&user_id={8}";

    string baseString = string.Format(
        baseFormat,
        oauth_consumer_key,
        oauth_nonce,
        oauth_signature_method,
        oauth_timestamp, oauth_token,
        oauth_version,
        Uri.EscapeDataString("MuneebZulfee"),
        Uri.EscapeDataString("some message"),
        Uri.EscapeDataString("1699575980")
    );

    string oauth_signature = null;
    using (HMACSHA1 hasher = new HMACSHA1(ASCIIEncoding.ASCII.GetBytes(Uri.EscapeDataString(oauth_consumer_secret) + "&" + Uri.EscapeDataString(oauth_token_secret))))
    {
        oauth_signature = Convert.ToBase64String(hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes("POST&" + Uri.EscapeDataString(facebookURL) + "&" + Uri.EscapeDataString(baseString))));
    }

    // create the request header
    string authorizationFormat = "OAuth oauth_consumer_key=\"{0}\", oauth_nonce=\"{1}\", " + "oauth_signature=\"{2}\", oauth_signature_method=\"{3}\", " + "oauth_timestamp=\"{4}\", oauth_token=\"{5}\", " + "oauth_version=\"{6}\"";

    string authorizationHeader = string.Format(
        authorizationFormat,
        Uri.EscapeDataString(oauth_consumer_key),
        Uri.EscapeDataString(oauth_nonce),
        Uri.EscapeDataString(oauth_signature),
        Uri.EscapeDataString(oauth_signature_method),
        Uri.EscapeDataString(oauth_timestamp),
        Uri.EscapeDataString(oauth_token),
        Uri.EscapeDataString(oauth_version)
    );

    HttpWebRequest objHttpWebRequest = (HttpWebRequest)WebRequest.Create(facebookURL);
    objHttpWebRequest.Headers.Add("Authorization", authorizationHeader);
    objHttpWebRequest.Method = "POST";
    objHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
    using (Stream objStream = objHttpWebRequest.GetRequestStream())
    {
        byte[] content = ASCIIEncoding.ASCII.GetBytes(Uri.EscapeDataString("user_id=1699575980&screen_name=MuneebZulfee&text=some message"));
        objStream.Write(content, 0, content.Length);
    }

    var responseResult = "";
    try
    {
        //success posting
        WebResponse objWebResponse = objHttpWebRequest.GetResponse();
        StreamReader objStreamReader = new StreamReader(objWebResponse.GetResponseStream());
        responseResult = objStreamReader.ReadToEnd().ToString();
    }
    catch (Exception ex)
    {
        //throw exception error
        responseResult = "Twitter Post Error: " + ex.Message.ToString() + ", authHeader: " + authorizationHeader;
    }
}
尝试使用Tweet-Sharp

var twitterApp = new TwitterService("******************", "****************");
twitterApp.AuthenticateWith("**********-*********************", "****************");
twitterApp.SendDirectMessage(new SendDirectMessageOptions() { ScreenName = "username", Text = DateTime.UtcNow.Ticks.ToString() });    

这对我来说很重要

出了什么问题?你是否从twitter上收到错误消息,或者抛出异常?你是否使用Fiddler或其他工具来查看实际发生的情况?你有没有把它和你在Twitter客户端上执行这个功能时通过网络发出的信息做过比较?是的,都是一样的。但问题仍然存在。如果你愿意,你可以试试。这个帐户是我的,我不会费心去获取任何调试消息。只是想让你知道,TweetSharp不再被维护。@Linvi你确定吗?正如twitter在其网站上提到的推荐图书馆一样,是的,我确信这一点。Twitter将此作为推荐的库,因为它曾经是,不幸的是,他们没有删除不推荐的库。