验证Twitter用户和发布他的帐号C#

时间:2017-01-27 10:55:14

标签: c# asp.net api twitter

我有一个单独的asp.net c#页面,其中包含三个文本框和一个发布推文的按钮。

1)输入用户名

2)输入密码

3)推文

4)发布推文按钮

问题是我想在用户帐户上发布推文。 在我的网页上,第一个用户将输入他的用户名和密码。我将从twitter验证用户信息,然后在自己的帐户上发布推文。

我们可以在Twitterizer中做这样的事情。

Twitter twitter =新推特(“用户名”,“密码”,“来源”);

twitter.Status.Update( “更新”);

我知道现在我们不能使用Twitterizer。

我使用了以下链接中提到的示例,但它也无效。

Twitter: verifying username and password in C#

示例代码 ////////////////////////////////////////////////// ///////////////////////////////////////////////// < / p>

public bool CheckTwitterCredentials(string UserName, string Password)
{
    // Assume failure
    bool Result = false;

    // A try except block to handle any exceptions
    try {
        // Encode the user name with password
        string UserPass = Convert.ToBase64String(
            System.Text.Encoding.UTF8.GetBytes(UserName + ":" + Password));

        // Create our HTTP web request object
        HttpWebRequest Request = 
            (HttpWebRequest)WebRequest.Create("http://twitter.com/account/verify_credentials.xml");

        // Set up our request flags and submit type
        Request.Method = "GET";
        Request.ContentType = "application/x-www-form-urlencoded";

        // Add the authorization header with the encoded user name and password
        Request.Headers.Add("Authorization", "Basic " + UserPass);

        // Use an HttpWebResponse object to handle the response from Twitter
        HttpWebResponse WebResponse = (HttpWebResponse)Request.GetResponse();

        // Success if we get an OK response
        Result = WebResponse.StatusCode == HttpStatusCode.OK;
    } catch (Exception Ex) {
        System.Diagnostics.Debug.WriteLine("Error: " + Ex.Message);
    }

    // Return success/failure
    return Result;
}

/////////////////////////////////////////////// ////////////////////////////////////////////////

现在twitter提供了一些与dot net C#一起使用的库。

https://dev.twitter.com/resources/twitter-libraries#dotnet

.NET

•@ joemayo的LINQ2Twitter(例子)

•SpringSource的Spring.NET社交扩展 - 一个Spring.NET社交扩展,具有连接支持和Twitter的API绑定。

•@ danielcrenna的TweetSharp - 用于Twitter API访问的.net库

•Tweetinvi由Linvi维护 - 一个Twitter .Net C#API,其任务是简化C#中Twitter应用程序的开发。流式API已用于研究项目,每天收集约320万条推文。 Twitter API的创建易于实现新功能,目前提供对大多数功能的访问。 (文档)

•Crafted.Twitter by @martbrow - 一种缓存兼容的解决方案 - 兼具ASP.Net Web Forms和MVC。在您的网站中轻松添加推文。

我使用了以下库TweetinviAPI。提到以下链接。

https://github.com/linvi/tweetinvi/wiki/Introduction#hello-world

//设置您的凭据(https://apps.twitter.com

Auth.SetUserCredentials("CONSUMER_KEY", "CONSUMER_SECRET", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET");

// Publish the Tweet "Hello World" on your Timeline
Tweet.PublishTweet("Hello World!");

但问题是它是在我自己创建的推特页面上发布而不是在其他用户推特页面上发布。

我想要的是,通过使用上面更新的库,用户可以通过任何方式将我的用户名和密码放在我的页面上以及推特的一些细节上,并在他自己的帐户上发布推文。

请告诉我这是否可能。

由于

Syyed

2 个答案:

答案 0 :(得分:2)

我是Tweetinvi的开发者。

Twitter应用程序不再公开用户名/密码身份验证。相反,Twitter现在要求开发人员使用OAuth。

这对您来说意味着,为了在您的应用上进行身份验证,他们必须从twitter.com网站接受您的申请。

为此,Twitter REST API提供了2个身份验证过程。基于PIN和URL重定向。建议网站使用网址重定向。

您可以在此处了解详情:https://github.com/linvi/tweetinvi/wiki/Authentication#url-redirect-authentication

我还建议您查看https://github.com/linvi/tweetinvi/wiki/Authentication#web-application-considerations,以便更好地了解身份验证机制。

最后,我建议您查看Examplinvi.ASP.NETExamplinvi.ASP.NET.Core这是一个MVC项目,正是您正在尝试做的事情:Authentication + Post Tweet

如果您之后有更多问题我会很乐意提供更多帮助!

干杯, Linvi

答案 1 :(得分:-1)

尝试该代码:

var tweet = Search.SearchTweets("stackoverflow");
var textToPublish = $"@{tweet.CreatedBy.ScreenName}";
var reply = Tweet.PublishTweet(new PublishTweetParameters(textToPublish)
                {
                    InReplyToTweet = tweet
                });