我有一个单独的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
答案 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.NET或Examplinvi.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
});