Опубликовать "Hello World" для твиттера из приложения .NET

Мой клиент хотел бы, чтобы я использовал .NET для публикации в Twitter, и предлагает использовать С#.

Q: Как отправить "Hello World" в twitter с помощью С#?

Этот пост упоминает библиотеку под названием twitterizer. Не существует ли родной способ сделать это без использования сторонней библиотеки? (Возможно, нет, поскольку проверка подлинности является одним из требований).

Ответ 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 и содержащим текст обновления статуса для учетной записи, указанной usernamepassword).

Ответ 4

Я предлагаю прочитать документацию на http://developer.twitter.com/start. У него есть вся необходимая информация.

Ответ 5

Twitter имеет свой API, чтобы сделать это