Отправить "Hello World" в твиттер из приложения .NET - PullRequest
9 голосов
/ 17 мая 2010

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

Q: Как мне опубликовать "Hello World" в Twitter, используя C #?

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

Ответы [ 5 ]

15 голосов
/ 17 мая 2010

Просто используйте эту реализованную оболочку для Twitter API:

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 / how-tweet-with-c /

Существует даже интервью DotNetRocks с разработчиками.

6 голосов
/ 06 декабря 2012

Я создал видеоурок, показывающий, как именно настроить приложение в 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's all bad.");
                }
            }
        }
    }
}
5 голосов
/ 17 мая 2010

Да, вы можете сделать это без какой-либо сторонней библиотеки. См. Мой образец IronPython , размещенный на сайте IronPython Cookbook , который показывает, как именно. Даже если вы не программируете на IronPython, основная часть кода, с которой вы должны начать, повторяется ниже и легко портируется на C #:

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

0 голосов
/ 17 мая 2010

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

0 голосов
/ 17 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...