【发布时间】:2016-12-26 04:53:23
【问题描述】:
实际上,我是通过 twitterizer 自动发送推文,并从不同 url 的 api JSON 数据中获取数据。但是,当我将 url 放入文本框中并启动项目时,它工作正常,我从文本框中获取数据,但是当进程转到 twitter 中的“应用程序授权”时,我按下“授权”按钮然后页面加载再次但当时 Request["textbox"] 为空。下面是前端代码。我将数据从“Frontsheet.aspx”之类的一页发布到 TwitterStrap.aspx
<form id="form1" runat="server" action="TwitterStrap.aspx" >
<div style="position:absolute">
<input type="text" id="text1" name="txtFirstName" placeholder="Enter Your First Name" />
<br />
<input id="Submit1" type="submit" value="submit" />
</div>
</form>
这是 TwitterStrap.aspx.cs 代码
protected void Page_Load(object sender, EventArgs e)
{
var text="";
if (!IsPostBack)
{
text = Request.Form["txtFirstName"];
}
using (var webClient = new System.Net.WebClient())
{
var jsonString = webClient.DownloadString(text);
ProductsJsonModel Data = JsonConvert.DeserializeObject<ProductsJsonModel>(jsonString);
List<Product> ProductsFromUrl = Data.products; // All of your products are here.
// Your code
Session["value"] = ProductsFromUrl;
var title="";
var cnt = ProductsFromUrl.Count;
for (int i = 0; i < cnt; i++)
{
title = ProductsFromUrl[0].title;
}
var oauth_consumer_key = "myLtWOTLGtLsjNsm15tUUpdEX";
var oauth_consumer_secret = "uC9yHjPPV83Olvq0I8zt9eMwyucIpUcO70NduqNx0JuPQVyDZB";
if (Request["oauth_token"] == null)
{
OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(
oauth_consumer_key,
oauth_consumer_secret,
Request.Url.AbsoluteUri);
Response.Redirect(string.Format("http://twitter.com/oauth/authorize?oauth_token={0}",
reqToken.Token));
}
else
{
string requestToken = Request["oauth_token"].ToString();
string pin = Request["oauth_verifier"].ToString();
var tokens = OAuthUtility.GetAccessToken(
oauth_consumer_key,
oauth_consumer_secret,
requestToken,
pin);
OAuthTokens accesstoken = new OAuthTokens()
{
AccessToken = tokens.Token,
AccessTokenSecret = tokens.TokenSecret,
ConsumerKey = oauth_consumer_key,
ConsumerSecret = oauth_consumer_secret
};
//TwitterResponse<TwitterStatus> response = TwitterStatus.Update(
// accesstoken,
// "Testing!! It works (hopefully).");
Twitterizer.TwitterResponse<TwitterStatus> response = TwitterStatus.Update(accesstoken, title, new StatusUpdateOptions() { UseSSL = true, APIBaseAddress = "http://api.twitter.com/1.1/" });
if (response.Result == RequestResult.Success)
{
Response.Redirect("https://twitter.com/");
}
else
{
Response.Redirect("https://twitter.com/");
}
}
}
}
【问题讨论】:
-
If (!IsPostBack) 只会在表单未提交时触发。如果表单没有提交,您将没有第一个 SD t 名称的 request.form。
-
乔尔谢谢,那我该怎么办?
-
查看CodingYoshi提交的答案
标签: c# asp.net twitter webforms