我在应用程序中使用Twitter登录.如果用户登录,它可以正常工作.我需要处理,当用户单击twitter oauth登录屏幕中的取消按钮而不是登录时.用户单击取消按钮时是否有回调机制?
通过OAuth对Twitter进行身份验证后,我没有看到获得用户名的好电话.这应该怎么样?我想撤回Twitter用户名,名字,姓氏等内容......基本的个人资料.OAuth握手应该给我我的用户名吗?
当我试图向Twitter发帖时,上述错误即将来临.如何摆脱这个错误?
堆栈跟踪如下:
Exception = {"远程服务器返回错误:(407)需要代理验证."} ExceptionStatus = ProtocolError
码:
private string GetOAuthUrl()
{
IFluentTwitter twitter;
//Override the callback url if one was entered
if (CallbackUrl != null && CallbackUrl.Trim().Length > 0)
{
twitter = FluentTwitter.CreateRequest().Configuration.UseHttps().Authentication.GetRequestToken(ConsumerKey, ConsumerSecret, CallbackUrl);
}
else
{
twitter = FluentTwitter.CreateRequest().Configuration.UseHttps().Authentication.GetRequestToken(ConsumerKey, ConsumerSecret);
}
var response = twitter.Request();
UnauthorizedToken UnauthorizedToken = response.AsToken();
string AuthorizationUrl = FluentTwitter.CreateRequest().Authentication.GetAuthorizationUrl(UnauthorizedToken.Token);
return AuthorizationUrl;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Twitterizer,效果很好.我有一个网站(.NET 4,C#)用户访问和登录...我存储令牌等一切都很好.
问题是我怎么能避免要求用户通过Twitter授予我的应用访问权限,因为我第一次就已经这样做了(假设用户已经在我的浏览器上的另一个标签页上用Twitter签名)?
我正在使用MVC4创建一个应用程序,该应用程序将使用Twitter授权用户,并允许他们从应用程序发送推文.我可以使用MVC4中的BuiltInOAuthClient.Twitter在没有问题的情况下对用户进行身份验证.http://www.asp.net/web-pages/tutorials/security/enabling-login-from-external-sites-in-an-aspnet-web-pages-site
我有访问令牌和oauth_verifier,但我也需要从Twitter获取acess_secret.https://dev.twitter.com/docs/auth/implementing-sign-twitter
我缺少的是如何将oauth_verifier传递回Twitter以使用OAuthWebSecurity获取访问密码.
再次,我可以使用Twitter登录确定,但我需要能够使用Twitter作为用户.我以前用TweetSharp库完成了这个,但是我想在这个项目上使用DotNetOpenAuth.
更新:我正在使用第一个链接中描述的OAuthWebSecurity类来管理身份验证.AuthConfig中的OAuthWebSecurity.RegisterClient需要DotNetOpenAuth.AspNet.IAuthenticationClient.您无法按照建议将其与TwitterConsumer类交换出来.
我可以使用第一个链接中描述的"内置"DotNetOpenAuth身份验证部分,或者我可以使用自定义代码进行完全授权,但我正在尝试找到两种方法.
我可以单独执行此操作,但随后会向用户显示两次Twitter对话框(一次登录,一次授权).我希望有一种方法可以使用已经连线的认证文件,它使用OAuthWebSecurity,但也可以使用授权文件.
我正在寻找一个使用Twitter 1.1 API的简单Java示例,但找不到.使用这里发布的PHP示例:使用Twitter API 1.1版和一些其他Stackoverflow帖子检索user_timeline的最简单的PHP示例,我能够提出以下工作示例.
public void testUserTimelineWithAuthSample() throws Exception {
//This will read the timeline of your account.
String method = "GET";
String url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
String oAuthConsumerKey = "Your value here.";
String oAuthConsumerSecret = "Your value here."; //<--- DO NOT SHARE THIS VALUE
String oAuthAccessToken = "Your value here.";
String oAuthAccessTokenSecret = "Your value here."; //<--- DO NOT SHARE THIS VALUE
String oAuthNonce = String.valueOf(System.currentTimeMillis());
String oAuthSignatureMethod = "HMAC-SHA1";
String oAuthTimestamp = time();
String …Run Code Online (Sandbox Code Playgroud) 因此,经过数天努力获得request_token https://api.twitter.com/oauth/request_token工作,我终于成功生成了一个Base Signature String和HMAC-SHA1签名,并收到了一个oauth_tokenfrom https://api.twitter.com/oauth/request_token.
现在,我对下一步感到有点困惑.我的最终目标是能够以编程方式简单地推送推文.
我知道我需要从中获取访问令牌https://api.twitter.com/oauth/access_token,但我不确定如何继续.我知道我需要oauth_token将调用接收到的值发送/oauth/request_token给/oauth/access_token,但是我在概念上被标题中的oauth_verifier字段搞糊涂了Authorization.
大多数的教程或文档中有关这次谈话来讲用户的浏览器重定向到登录页面,然后将其用于生产管脚数的oauth_verifier.但就我而言,没有浏览器:我只是在Python中编写一个自动守护进程,需要定期提取某些推文.所以没有浏览器,也没有涉及人类"用户".那么该oauth_verifier领域如何适用于此?
我已经从Spring的入门指南 - 访问Twitter数据中下载了代码https://spring.io/guides/gs/accessing-twitter/.
我在application.properties中设置了我的凭据,没有进行任何其他更改.我运行应用程序,当它尝试连接到Twitter时,它失败,ConnectController第240行出现异常:
ResourceAccessException:org.springframework.web.client.ResourceAccessException:对于" https://api.twitter.com/oauth/request_token "的POST请求的I/O错误:在流模式下,由于服务器身份验证而无法重试; 嵌套异常是java.net.HttpRetryException:在流模式下,由于服务器身份验证无法重试
我已经检查过应用程序正在读取凭据.它们是有效的 - 我使用它们来连接我用twitter4j编写的另一个应用程序,尽管在这种情况下我除了使用消费者密钥和消费者密钥之外还使用了令牌和令牌秘密.
有任何想法吗?
谢谢
所以我是Go的新手,所以请原谅我的无知.我正在尝试使用oauth2对twitter进行一个简单的REST API调用,以进行"仅应用程序"调用,但我不断将"无效或过期令牌"作为错误返回.
有人有设置这样的东西的经验吗?
响应是:{"errors":[{"code":89,"message":"令牌无效或过期."}]}
package main
import "fmt"
import "encoding/base64"
import "io/ioutil"
import "time"
import "golang.org/x/oauth2"
func main() {
config := &oauth2.Config{
Endpoint: oauth2.Endpoint{
AuthURL: "https://api.twitter.com/oauth2/token",
TokenURL: "https://api.twitter.com/oauth/request_token",
},
}
accessToken := base64.StdEncoding.EncodeToString([]byte("{Consumer Key (API Key)}:{Consumer Secret (API Secret)}"));
token := &oauth2.Token{
AccessToken: accessToken,
Expiry: time.Now().Add(time.Duration(24)*time.Hour)
}
httpClient := config.Client(oauth2.NoContext, token)
resp, err := httpClient.Get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=google")
if (err != nil) {
fmt.Printf("Error: %s", err)
}
defer resp.Body.Close();
body, err := ioutil.ReadAll(resp.Body);
if (err != nil) {
fmt.Printf("Error: %s", err)
}
fmt.Printf("Access …Run Code Online (Sandbox Code Playgroud) 我目前在尝试发送基本的GET请求时遇到身份验证问题。我从这次尝试中得到的结果如下所示:
{“errors”:[{“code”:32,“message”:“Could not authenticate you.”}]}
Run Code Online (Sandbox Code Playgroud)
我对这个错误相当普遍这一事实很熟悉,但是我发现这个问题很有趣,因为经过数小时的尝试仍然无法解决。我使用应用程序Postman(https://www.getpostman.com)实现了这一目标。
这是我尝试做的事情:
确保正确设置了我的计算机的时间和时区确保正确设置了Twitter的时区确保凭据正确(与Twitter应用程序中的凭据相同)向请求添加一些基本参数将链接放入应用程序设置中的“ callback_url”字段使用另一个库-Tweetinvi(https://github.com/linvi/tweetinvi1)检查请求URL是否正确以前的所有尝试都是徒劳的。我发现没有解决方案能够解决我的问题。这是我在Postman中的配置的简要介绍

谢谢您的帮助。
twitter-oauth ×10
twitter ×6
oauth ×3
.net ×1
c# ×1
go ×1
identity ×1
java ×1
oauth-2.0 ×1
postman ×1
python ×1
spring-boot ×1
twitterizer ×1