3

ですから、私はC#に非常に慣れていないので、数日前にそれを学び始めました。C#でツイートする方法を知りたいと思います。私はグーグルをたくさん検索し、いくつかのYouTubeビデオを見ましたが、それらはすべて古いものです。私はこのコードを持っているTwitterizer.netを見つけました:

OAuthTokens tokens = new OAuthTokens();
tokens.AccessToken = "XXX";
tokens.AccessTokenSecret = "XXX";
tokens.ConsumerKey = "XXX";
tokens.ConsumerSecret = "XXX";

TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, "Hello,         #Twitterizer");
if (tweetResponse.Result == RequestResult.Success)
{
    messagebox.Show("Message Tweeted!");
}
else
{
   messageBox.Show("cannot tweet");
}

このコードをボタン「button1」に入れましたが、機能していないようで、ツイートできないというメッセージボックスがポップアップ表示されます。なぜこれが起こっているのか分かりません。ツイッターを使ってこれを一番上に置きました;。また、コンシューマーキー、consumersecret、token、tokensecretも取得しました。ですから、何が問題なのかわかりませんので、よろしくお願いします。ありがとう!

4

2 に答える 2

2

Twitterコールバックを使用する必要があります。Twitterの開発者セクションで設定します。

次を試してください

using System;
using System.Diagnostics;
using TweetSharp;
using Hammock.Authentication.OAuth;

public static string Token = "XXX"
public static string TokenSecret = "XXX"
public static string ConsumerKey = "XXX"
public static string ConsumerSecret = "XXX"
public static string Callback = "XXX"

private static TwitterClientInfo TwitterClientInfo = new TwitterClientInfo()
{
    ConsumerKey = ConsumerKey,
    ConsumerSecret = ConsumerSecret,
};

private static TwitterService TwitterService = new TwitterService(TwitterClientInfo);

public static bool SetUpTwitter()
{
    var OAuthCredentials = new OAuthCredentials
    {
        Type = OAuthType.RequestToken,
        SignatureMethod = OAuthSignatureMethod.HmacSha1,
        ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
        ConsumerKey = ConsumerKey,
        ConsumerSecret = ConsumerSecret,
        CallbackUrl = "",
    };

    OAuthRequestToken requestToken = TwitterService.GetRequestToken(Callback);
    Uri authUrl = TwitterService.GetAuthorizationUri(requestToken, Callback);

    Process.Start(authUrl.AbsoluteUri);

    DateTime currentTime = DateTime.Now;
    DateTime endTime = currentTime.AddSeconds(30);
    while (currentTime < endTime)
    {
        currentTime = DateTime.Now;
    }

    OAuthAccessToken accessToken = TwitterService.GetAccessToken(requestToken);
    return SendMessage(accessToken.Token, accessToken.TokenSecret, "Send Sample Tweet");
}

public static bool SendMessage(string token, string tokenSecret, string message)
{
    Token = token;
    TokenSecret = tokenSecret;

    if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(tokenSecret))
        return SetUpTwitter();

    try
    {
        TwitterService.AuthenticateWith(token, tokenSecret);
        TwitterService.SendTweet(message);

        return true;
    }

    catch
    {
        return false;
    }
}
于 2012-01-30T19:20:14.610 に答える
0

より多くの情報がなければ、あなたを支援することは不可能です、それで、あなたに正確な答えを与える代わりに、私はあなたが根本的な問題が何であるかを見つけるのを手伝うように努めます。

行にブレークポイントを設定し、TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, "Hello, #Twitterizer");アプリケーションをデバッグします。その行をステップオーバーして、の値を調べますtweetResponse.ErrorMessage。これにより、Twitterからの生のエラーメッセージが表示されます(存在する場合)。ない場合は、を見てくださいtweetResponse.Content。このプロパティには、Twitterからの生の応答が含まれます。これは、問題に応じて、json、xml、またはhtmlになります。

Twitterizerに関連する問題を送信する場合、ほとんどの場合、これらの値はトラブルシューティングに必要になります。

于 2012-01-31T20:17:20.347 に答える