我一直在寻找如何在Rails 3的Devise gem中使用oauthable模块.我在这里遇到了几个看似正确的问题但是我无法让实现工作.我的最终目标是通过我的Rails 3应用程序中的Devise进行Twitter和Facebook身份验证.现在我正在努力应对我认为是看守策略列表中的"例子".我到目前为止.
在我的设计初始化器中,我有以下代码块,我相信,适当的地方.
manager.oauth(:twitter) do |twitter|
twitter.consumer_secret = '[secret]'
twitter.consumer_key = '[key]'
twitter.options :site => 'http://twitter.com'
end
manager.default_strategies(:scope => :user).unshift :twitter_oauth
Warden::OAuth::access_token_user_finder(:twitter) do |access_token|
User.find_or_create_by(:token => access_token.token, :secret => access_token.secret).tap do |user|
user ||= User.create!(:access_token => access_token.token, :secret => access_token.secret)
end
end
Run Code Online (Sandbox Code Playgroud)
我已经在我的一个观点上放置了一个链接,但我得到的只是一个错误,OAuth 401未经授权,这是来自Twitter还是我完全错过了一步?
我正在开始一个网站,我想知道他们的任何模块或小部件已经出来,然后学习如何将其编码到我的网站,让用户在我的网站上登录他们的Twitter帐户并上传徽章,然后将其反映在他们的网站上twitter.com域名中的实际推特个人资料... 我听说他们有一些问题,让用户登录其他Twitter不喜欢的网站,这可能是一个安全风险,但我实际上不会存储任何登录或密码.他们必须登录一次才能获得该徽章,就这样.
我使用我的清单中的intent-filter在我的应用程序中使用Twitter OAuth.我是如何实现它的,一旦用户点击按钮通过Twitter发布我就开始一个新的Activity(让我们称之为TwitterLoginActivity),新的TwitterLoginActivity创建一个新的Intent与authUrl,如下所示:
Intent oauthIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));
Run Code Online (Sandbox Code Playgroud)
这将打开一个浏览器,我授权我的应用程序,它返回onResume()TwitterLoginActivity 的功能.在这一点上,我发布到Twitter很好,并在此活动上完成().
所有这一切都像一个冠军,但在调用这个完成()它返回到我刚刚授权的Twitter.com网页.我不太了解活动堆栈是如何工作的,但是无论如何要移除我看到的所有Twitter.com的WebViews并在那里完成()它只是返回到我的应用程序中用户的原始点点击了帖子按钮?
大家好我正在我的应用程序中集成使用facebook和twitter的标志.我打算稍后在线上包括其他关于提供者的标志.我实际上是从我在网上发现的一些开源代码构建的,但我想我在这里做了很多东西.
我的数据库结构如下:
用户ID | NAME | .... | EMAIL | PASSWORD
USER SIGNONS USER_ID | SIGNIN_TYPE | 登录ID
Whenevr任何人都可以通过使用Facebook或Twitter帐户登录来创建帐户 - 在用户登录表中输入一个条目,表明用户的签名类型为"facebook"或"twitter".
我已使用以下代码进行身份验证:
public function loginAction() {
$this->ajaxInit();
// get an instace of Zend_Auth
$auth = Zend_Auth::getInstance();
$p = $this->_getAllParams();
if(isset($p['redirectto'])){
$this->setRedirect($p['redirectto']);
}else{
$redirect = explode('?', $_SERVER['HTTP_REFERER']);
$this->setRedirect($redirect[0]);
}
// check if a user is already logged
// this checks if he is logged into an open id providor
/*if ($auth->hasIdentity()) {
return $this->_redirect('/index/index');
}*/
// if the user is not …Run Code Online (Sandbox Code Playgroud) 我正在关注Ricky的Twitterizer示例(在我的最后进行了一些修改),但是当我尝试发送身份验证请求时,我收到了"401 Unauthorized"异常:
{Twitterizer.TwitterizerException: The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at Twitterizer.WebRequestBuilder.ExecuteRequest()
at Twitterizer.OAuthUtility.GetRequestToken(String consumerKey, String consumerSecret, String callbackAddress)
--- End of inner exception stack trace ---
at Twitterizer.OAuthUtility.GetRequestToken(String consumerKey, String consumerSecret, String callbackAddress)
at MyProject.Controllers.AccountController.Authenticate(String oauthToken, String oauthVerifier, String returnUrl) in C:\path\to\my\website\Controllers\AccountController.cs:line 78}
Run Code Online (Sandbox Code Playgroud)
我有私有成员变量,它包含我的消费者密钥和消费者秘密:
// I obtain my consumer key and the consumer secret from the web config
private static readonly string _twitterConsumerKey = …Run Code Online (Sandbox Code Playgroud) 我已经浏览了大量的博客和教程,使用Twitter 4j库编写一个简单的推文程序,但很少有用.有人可以为我提供一个网站,其中包含有关相同步骤的良好教程.
我正在浏览社交认证(http://code.google.com/p/socialauth/)的功能,并想知道这是否符合我的要求.请指导.
我的Web应用程序目前拥有自己的登录机制(本机).但我打算做以下事情:
所以我的疑问是:(社交认证"...目前Facebook,Twitter和LinkedIn不提供电子邮件地址.更新:Hotmail已经停止提供电子邮件地址.")尽管我会有一个关注者,朋友或联系人列表一旦用户选择并提交表格,我能否通知他们?
它会分别通过F,T还是G(通过状态更新,推文或电子邮件?)
此外,我还有一个场景:例如,用户已使用Facebook登录.现在我希望用户能够链接她的Twitter和Google帐户.socialauth可以提供吗?如果是,我将如何处理同一用户的多个配置文件对象?
请指导或建议任何其他图书馆.我的应用程序是在Spring MVC中.
或者我应该使用Spring Social?
这是一个非常简单的例子,用于调用Twitter的搜索API,以便从已知有推文的标签中获取所有推文#fml.
我相信我正确使用了此处所述的仅应用程序身份验证:https://dev.twitter.com/docs/auth/application-only-auth(有关呼叫,请参阅步骤3)
我被要求提供一个不涉及任何服务器端代码的解决方案,所以我在javascript中包含了承载代码,这不好开头,但....
我希望这段代码能够运行.相反,它产生错误'400(错误请求)'.有任何想法吗?
$.ajax({
url: "https://api.twitter.com/1.1/search/tweets.json",
dataType: "jsonp",
data: "q=%23fml",
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Bearer XXmyBearerCodeXX");
},
success: function(json){ alert(json); }
});
Run Code Online (Sandbox Code Playgroud)
编辑1 - 验证的Twitter电话
使用hurl.eu我能够通过上面的查询和授权标题从API获得成功的响应,所以我认为这意味着我的Twitter调用是正确的,只是没有在jQuery.ajax()中正确设置,但我只是不喜欢看不出什么.
我的目标是根据他/她的Twitter帐户获取用户的详细信息.首先,让我解释一下我想做什么.
在我的情况下,将向用户显示使用Twitter帐户注册的选项.因此,基于用户的Twitter帐户,我希望能够获取用户详细信息(例如电子邮件ID,姓名,个人资料图片,出生日期,性别等)并将这些详细信息保存在数据库中.现在,很多人可能会建议我使用ACAccount和ACAccountStore一个提供访问,操作和存储帐户的界面的类.但在我的情况下,即使用户尚未在iOS设置应用中为Twitter配置帐户,我也想要注册用户.我希望用户导航到Twitter的登录屏幕(在Safari或App本身,或使用任何其他替代方案).
我也提到Twitter的API有列表的文档在这里.但我很困惑应该如何向用户提供登录屏幕以登录Twitter帐户以及如何获取个人资料信息.我应该使用UIWebView,还是将用户重定向到Safari或采用其他方式?
在twitter控制台中,我有一个来自firebase链接的回调网址.然而,当我尝试使用twitter进行身份验证时,我收到错误:
"Request failed: forbidden (403)" UserInfo={NSLocalizedFailureReason=Twitter API error : <?xml version="1.0" encoding="UTF-8"?><errors><error code="415">Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings</error></errors> (code (null))
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我已经尝试了一切,互联网上没有其他人似乎有这个问题,但我呢?
twitter-oauth ×10
twitter ×6
ajax ×1
android ×1
c# ×1
devise ×1
firebase ×1
ios ×1
jquery ×1
oauth ×1
oauth-ruby ×1
objective-c ×1
openid ×1
php ×1
socialauth ×1
spring-mvc ×1
swift ×1
twitter4j ×1
twitterizer ×1