Опубликовать "Hello World" для твиттера из приложения .NET
Мой клиент хотел бы, чтобы я использовал .NET для публикации в Twitter, и предлагает использовать С#.
Q: Как отправить "Hello World" в twitter с помощью С#?
Этот пост упоминает библиотеку под названием twitterizer. Не существует ли родной способ сделать это без использования сторонней библиотеки? (Возможно, нет, поскольку проверка подлинности является одним из требований).
Ответы
Ответ 1
Просто используйте эту внедренную оболочку для API Twitter:
https://github.com/danielcrenna/tweetsharp
var twitter = FluentTwitter.CreateRequest()
.AuthenticateAs("USERNAME", "PASSWORD")
.Statuses().Update("Hello World!")
.AsJson();
var response = twitter.Request();
От: http://code-inside.de/blog-in/2009/04/23/howto-tweet-with-c/
Существует даже интервью DotNetRocks с разработчиками.
Ответ 2
Я создал видеоурок, показывающий, как настроить приложение в twitter, установить библиотеку API с помощью nuget, принять токен доступа от пользователя и сообщения от имени этого пользователя:
Видео:
http://www.youtube.com/watch?v=TGEA1sgMMqU
Учебник: http://www.markhagan.me/Samples/Grant-Access-And-Tweet-As-Twitter-User-ASPNet
Если вы не хотите покидать эту страницу:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Twitterizer;
namespace PostFansTwitter
{
public partial class twconnect : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var oauth_consumer_key = "gjxG99ZA5jmJoB3FeXWJZA";
var oauth_consumer_secret = "rsAAtEhVRrXUTNcwEecXqPyDHaOR4KjOuMkpb8g";
if (Request["oauth_token"] == null)
{
OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(
oauth_consumer_key,
oauth_consumer_secret,
Request.Url.AbsoluteUri);
Response.Redirect(string.Format("http://twitter.com/oauth/authorize?oauth_token={0}",
reqToken.Token));
}
else
{
string requestToken = Request["oauth_token"].ToString();
string pin = Request["oauth_verifier"].ToString();
var tokens = OAuthUtility.GetAccessToken(
oauth_consumer_key,
oauth_consumer_secret,
requestToken,
pin);
OAuthTokens accesstoken = new OAuthTokens()
{
AccessToken = tokens.Token,
AccessTokenSecret = tokens.TokenSecret,
ConsumerKey = oauth_consumer_key,
ConsumerSecret = oauth_consumer_secret
};
TwitterResponse<TwitterStatus> response = TwitterStatus.Update(
accesstoken,
"Testing!! It works (hopefully).");
if (response.Result == RequestResult.Success)
{
Response.Write("we did it!");
}
else
{
Response.Write("it all bad.");
}
}
}
}
}
Ответ 3
Да, вы можете сделать это без какой-либо сторонней библиотеки. См. Мой образец IronPython, размещенный на сайте IronPython Cookbook, который показывает вы точно как. Даже если вы не программируете в IronPython, основная часть кода, которую вы должны запустить, повторяется ниже и легко переносится на С#:
ServicePointManager.Expect100Continue = False
wc = WebClient(Credentials = NetworkCredential(username, password))
wc.Headers.Add('X-Twitter-Client', 'Pweeter')
form = NameValueCollection()
form.Add('status', status)
wc.UploadValues('http://twitter.com/statuses/update.xml', form)
В принципе, это HTTP POST для http://twitter.com/statuses/update.xml с одним полем FORM HTML, называемым status
и содержащим текст обновления статуса для учетной записи, указанной username
(и password
).
Ответ 4
Я предлагаю прочитать документацию на http://developer.twitter.com/start. У него есть вся необходимая информация.
Ответ 5
Twitter имеет свой API, чтобы сделать это