繁体   English   中英

验证 Twitter 用户并在他的帐户 C# 上发布推文

[英]Verify Twitter User and Post tweet on his on account C#

我有一个带有三个文本框和一个用于发布推文的按钮的 asp.net c# 页面。

1) 输入用户名

2) 输入密码

3) 推文文字

4)发布推文按钮

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

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

Twitter twitter = new Twitter("username", "password", "source");

twitter.Status.Update("更新");

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

我使用了以下链接中提到的示例,但它也不起作用。

Twitter:在 C# 中验证用户名和密码

示例代码//////////////////////////////////////////////// ///////////////////////////////////////////////// /

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

。网

• @joemayo 的 LINQ2Twitter(示例)

• SpringSource 的用于 Twitter 的 Spring.NET Social 扩展 — 具有连接支持和用于 Twitter 的 API 绑定的 Spring.NET Social 扩展。

• TweetSharp by @danielcrenna — 一个用于 Twitter API 访问的 .net 库

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

• Crafted.Twitter by @martbrow — 一种缓存兼容解决方案 — 具有 ASP.Net Web 窗体和 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!");

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

我想要的是,通过使用上述更新的库,用户是否可以将他的用户名和密码放在我的页面上以及推文的一些详细信息并在他自己的帐户上发布推文。

请告诉我这现在是否可能。

谢谢

赛义德

我是 Tweetinvi 的开发者。

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

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

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

你可以在这里了解更多信息: https : //github.com/linvi/tweetinvi/wiki/Authentication#url-redirect-authentication

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

最后,我建议您查看Examplinvi.ASP.NETExamplinvi.ASP.NET.Core ,这是一个 MVC 项目,它完全按照您的要求执行: Authentication + Post Tweet

如果您之后还有更多问题,我将很乐意为您提供更多帮助!

干杯,林维

试试那个代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM