Как сделать простую публикацию в Twitter через ASP.NET (желательно VB)? - PullRequest
4 голосов
/ 12 мая 2009

Я не хочу делать что-то необычное в Твиттере, кроме публикации на нем моего сайта один раз в день. Я немного искал, и есть все виды сверхсложных способов сделать каждую мелочь, которую делает Твиттер, но, похоже, мало документации о том, как сделать простейшую вещь, а именно сделать пост!

Кто-нибудь знает, как это сделать? Или вы можете хотя бы указать мне правильное направление? Мне не нужны полные обертки или что-то еще (http://apiwiki.twitter.com/Libraries#C/NET), только одна простая функция, которая будет публиковать в Twitter.

Спасибо!

Ответы [ 4 ]

4 голосов
/ 12 мая 2009

Это самая простая реализация когда-либо. Запуск и запуск менее чем за 2 минуты: Twitterizer

0 голосов
/ 14 мая 2009

Есть несколько способов сделать это, вы можете проверить http://restfor.me/twitter, и он даст вам код из документации RESTful.

По сути, для любого аутентифицированного вызова вы можете следовать этой логике:


        /// 
        /// Executes an HTTP POST command and retrives the information.     
        /// This function will automatically include a "source" parameter if the "Source" property is set.
        /// 
        /// The URL to perform the POST operation
        /// The username to use with the request
        /// The password to use with the request
        /// The data to post 
        /// The response of the request, or null if we got 404 or nothing.
        protected string ExecutePostCommand(string url, string userName, string password, string data) {
            WebRequest request = WebRequest.Create(url);
            request.ContentType = "application/x-www-form-urlencoded";
            request.Method = "POST";
            if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password)) {
                request.Credentials = new NetworkCredential(userName, password);



                byte[] bytes = Encoding.UTF8.GetBytes(data);

                request.ContentLength = bytes.Length;
                using (Stream requestStream = request.GetRequestStream()) {
                    requestStream.Write(bytes, 0, bytes.Length);

                    using (WebResponse response = request.GetResponse()) {
                        using (StreamReader reader = new StreamReader(response.GetResponseStream())) {
                            return reader.ReadToEnd();
                        }
                    }
                }
            }

            return null;
        }
0 голосов
/ 12 мая 2009

Это довольно просто; вам просто нужно опубликовать XML-файл на веб-странице, используя webrequest.create. Этот пример близок (предполагается, что у вас есть xml для сообщения в другом месте и просто передайте его в переменную twitterxml в виде строки. URL-адрес может быть неправильным; нашел его на этой [page] [1], которая определяет интерфейс

WebRequest req = null;
   WebResponse rsp = null;
   try
   {
    string twitterXML = "xml as string";
    string uri = "http://twitter.com/statuses/update.format";
    req = WebRequest.Create(uri);
    //req.Proxy = WebProxy.GetDefaultProxy(); // Enable if using proxy
    req.Method = "POST";        // Post method
    req.ContentType = "text/xml";     // content type
    // Wrap the request stream with a text-based writer
    StreamWriter writer = new StreamWriter(req.GetRequestStream());
    // Write the XML text into the stream
    writer.WriteLine(twitterXML);
    writer.Close();
    // Send the data to the webserver
    rsp = req.GetResponse();

   }

[1]: http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses обновление

0 голосов
/ 12 мая 2009

Есть несколько способов сделать это, они различаются в зависимости от инструментов, которые вы хотите использовать и к которым имеете доступ. Вариант 1 будет работать прямо из коробки, но кодирование может быть сложным. Вариант 3, для которого вам нужно будет загрузить инструменты, но после установки и загрузки вы сможете очень быстро использовать API Twitter.

  1. Используйте WebRequest.Create для создания / отправки сообщений на удаленные конечные точки
  2. Используйте WCF, создайте зеркальную конечную точку и получите доступ к API Twitter, используя только конечную точку клиента.
  3. Используйте предварительный просмотр WCF REST Starter Kit 2 , который имеет новый класс под названием HttpClient. Я бы порекомендовал эту технику, если вы можете. Вот отличное видео Использование REST Twitter Feed менее чем за 3 минуты .

Вот пример использования HttpClient начального набора WCF REST:

    public void CreateFriendship(string friend)
    {
        using (var client = new HttpClient())
        {
            var url = string.Format("http://www.twitter.com/friendships/create/{0}.xml?follow=true", friend);
            client.Post(url)
                .CheckForTwitterError()
                .EnsureStatusIs(HttpStatusCode.OK);
        }
    }

Добавьте комментарий, если вам нужна дополнительная информация о конкретном методе.

Обновление:

Для варианта № 1 см. Этот вопрос: Удаленный пост HTTP с C #

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