4

1 日 1 回自分のサイトから投稿する以外に、Twitter で凝ったことはしたくありません。少し調べてみたところ、Twitter のようにあらゆる小さなことを行うための非常に複雑な方法がたくさんありますが、最も単純なことである投稿を行う方法に関するドキュメントはほとんどないようです。

誰もこれを行う方法を知っていますか? または、少なくとも私を正しい方向に向けることができますか? 完全なラッパーなど ( http://apiwiki.twitter.com/Libraries#C/NET )は必要ありません。Twitter に投稿する単純な関数が 1 つだけです。

ありがとう!

4

4 に答える 4

0

これを行うにはいくつかの方法があります、あなたはチェックアウトすることができます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;
        }
于 2009-05-14T19:12:30.300 に答える
0

これにはいくつかの方法があり、使用したいツールやアクセスしたいツールによって異なります。オプション 1 はすぐに使用できますが、コーディングが複雑になる可能性があります。オプション 3 のツールをダウンロードする必要がありますが、ツールをインストールしてロードすると、Twitter API を非常に迅速に使用できるようになります。

  1. WebRequest.Create を使用して、リモート エンドポイントにメッセージを作成/送信する
  2. WCF を使用してミラー エンドポイントを作成し、クライアントのみのエンドポイントを使用して Twitter API にアクセスします。
  3. HttpClient という新しいクラスを持つWCF REST スターター キット プレビュー 2を使用します。可能であれば、このテクニックをお勧めします。これは素晴らしいビデオConsuming a REST Twitter Feed in under 3 minutesです。

WCF REST スターター キットの HttpClient の使用例を次に示します。

    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 については、この質問を参照してください: C# を使用したリモート HTTP ポスト

于 2009-05-11T21:40:49.790 に答える
0

かなり単純です。webrequest.create を使用して、xml ファイルを Web ページに投稿するだけです。この例は近いです (メッセージの xml が別の場所にあり、それを文字列として twitterxml 変数に渡すと仮定します。URL は正しいものではない可能性があります。インターフェイスを定義するこの [ページ][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 更新

于 2009-05-11T21:45:34.900 に答える