3

.net アプリケーションから Twitter ユーザーにメッセージを送信したいと考えています。どうすればこれを達成できますか?これに使用できる API または JavaScript コードはありますか? 誰か助けてください。

4

2 に答える 2

1

この目的で Twitter ボタン プラグインを使用できます。そのJavaScriptに基づいています。このリンクを参照してください

于 2013-04-10T09:14:11.677 に答える
0

このコードスニペットは、TwitterAPIをラップしてメッセージを送信するために使用されます。完全なTwitterラッパーではありませんが、Twitterを使用してツイートメッセージを簡単に送信できます。2つのオーバーロードされたコンストラクターがあり、どちらもユーザー名とパスワードを渡す必要があり、プロキシサーバーがオーバーロードされたパラメーターとして使用されます。

using System;
    using System.IO;
    using System.Net;
    using System.Xml;
    using System.Web;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace Helpers
    {
public class TwitterHelpers
{
private string _twitterJsonUrl = "http://twitter.com/statuses/update.json";

public string TwitterJsonUrl
{
get { return _twitterJsonUrl; }
set { _twitterJsonUrl = value; }
}

private string _twitterUser = string.Empty;

public string TwitterUser
{
get { return _twitterUser; }
set { _twitterUser = value; }
}

private string _twitterPass = string.Empty;

public string TwitterPass
{
get { return _twitterPass; }
set { _twitterPass = value; }
}

private string _proxyServer = string.Empty;

public string ProxyServer
{
get { return _proxyServer; }
set { _proxyServer = value; }
}

public string SendTwitterMessage(string message)
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(TwitterJsonUrl);
System.Net.ServicePointManager.Expect100Continue = false;

string post = string.Empty;
using (TextWriter writer = new StringWriter())
{
writer.Write("status={0}", HttpUtility.UrlEncode(message.Substring(0,140)));
post = writer.ToString();
}

SetRequestParams(request);

request.Credentials = new NetworkCredential(TwitterUser, TwitterPass);

using (Stream requestStream = request.GetRequestStream())
{
using (StreamWriter writer = new StreamWriter(requestStream))
{
writer.Write(post);
}
}

WebResponse response = request.GetResponse();
string content;

using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
content = reader.ReadToEnd();
}
}

return content;

}
catch (Exception ex)
{
throw ex;
}
}

private void SetRequestParams(HttpWebRequest request)
{
request.Timeout = 500000;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "My Twitter Application";

if (!string.IsNullOrEmpty(_proxyServer))
{
request.Proxy = new WebProxy(_proxyServer, false);
}

}

public TwitterHelpers(string userName, string userPassword, string proxyServer)
{
_twitterUser = userName;
_twitterPass = userPassword;
_proxyServer = proxyServer;
}

public TwitterHelpers(string userName, string userPassword)
{
_twitterUser = userName;
_twitterPass = userPassword;
}

}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleAppTest
{
class Program
{
private static TwitterHelpers _twitterHelpers = null;

private static TwitterHelpers TwitterHelpers
{
get
{
if (_twitterHelpers == null)
{
_twitterHelpers = new TwitterHelpers("twitteruser", "twitterpassword");
}

return _twitterHelpers;
}
}

static void Main(string[] args)
{
TwitterHelpers.SendTwitterMessage("Hello World!!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}
于 2013-01-29T12:11:46.370 に答える