继续:在没有第 3 方库的情况下设置 Twitter OAuth
感谢 Nylander 先生的帮助,我成功地让我的 oAuth 类正常工作(尽管花了很长时间)!但是,我对 oAuth 流程的几个方面感到困惑。
以下是我制作的程序中发生的情况的细分:
==编辑,我想我会发布部分代码,很难用我的话来解释==
//1st code segment
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.twitter.com/oauth/request_token");
string response = "";
HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
{
response = reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
至此,我已经可以成功得到回复了。
响应 --> oauth_token=asjndiqufh9uf&oauth_token_secret=oinroiqurhwunwer&oauth_callback_confirmed=true
//2nd code segment
Process proc = new Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = "https://api.twitter.com/oauth/authenticate?" + response;
proc.Start();
Run Code Online (Sandbox Code Playgroud)
这会将用户(我)带到一个页面,我必须在其中选择是否要授权。如果我同意,我将被带到包含 PIN 码的页面。
//3rd code segment
Console.WriteLine("Enter the PIN");
string pin = Console.ReadLine();
baseString = generateBaseString("POST", "https://api.twitter.com/oauth/access_token", oauth_token); …Run Code Online (Sandbox Code Playgroud) 任何人都可以告诉我从我的 Android 应用程序为 twitter 登录执行开放身份验证的正确步骤吗?还有一件事是否可以在不从我的 APP 登录 Twitter 登录页面的情况下执行 twitter 帐户的登录身份验证?
想法是使用 twitter 帐户登录我的 android APP(身份验证)?
我已经试过了,但它是 gng 到 twitter webview 进行身份验证,而无需在我的应用程序中输入用户名和密码?
所以请帮助我!提前致谢 !!
我们有用户想要为多个帐户使用相同的电子邮件地址。我们的 rails 应用程序使用 omniauth-twitter gem 和 Devise 来验证用户。用户注册时,需要电子邮件,但不用于身份验证。
我们如何配置 Devise 以允许用户在注册多个帐户时使用相同的电子邮件而不会收到“电子邮件已被占用”验证错误?
在尝试写入用户的时间线之前,我想检查一个应用是否具有写访问权限.我该如何检查?
使用下面的 python 代码,当身份验证成功时,我收到以下错误:
错误代码:453:您当前只能访问 Twitter API v2 端点的子集和有限的 v1.1 端点(例如媒体发布、oauth)。如果您需要访问此端点,您可能需要不同的访问级别。您可以在这里了解更多信息: https: //developer.twitter.com/en/portal/product
我目前正在使用developer.twitter.com上的免费版本。
代码:
import tweepy
# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_TOKEN_SECRET")
# Create API object
api = tweepy.API(auth)
try:
api.verify_credentials()
print("Authentication OK")
except:
print("Error during authentication")
# Create a tweet
api.update_status("content of tweet")
Run Code Online (Sandbox Code Playgroud)
在这个链接中,正确的访问权限描述如下:
自由的
- 用于只写用例和测试 Twitter API
- 对 v2 推文发布和媒体上传端点的访问进行速率限制
- 每月 1,500 条推文 - 应用程序级别的发布限制
- 1 个应用程序 ID
- 使用 Twitter 登录
这是错误日志:
验证成功
回溯(最近一次调用最后一次):文件“...\create_tweet.py”,第 19 行,在 api.update_status('推文内容') 文件“...\tweepy\api.py”,第 …
我一直在寻找一种从Python客户端更新我的Twitter状态的方法.根据http://dev.twitter.com/pages/oauth_single_token,由于此客户端只需要访问一个Twitter帐户,因此应该可以使用预先生成的oauth_token和secret来执行此操作.
但是示例代码似乎不起作用,我得到'无法验证您'或'错误签名'..
由于有很多不同的python-的Twitter库,在那里(而不是所有的人都跟上时代的)我会很感激,如果有人可以点我认为目前从事POST请求库,或发布一些示例代码!
更新: 我已经尝试了Pavel的解决方案,只要新消息只有一个字长就可以工作,但只要它包含空格,我就会收到此错误:
status = api.PostUpdate('hello world')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\site-packages\python_twitter\twitter.py", line 2459, in PostUpdate
self._CheckForTwitterError(data)
File "C:\Python26\lib\site-packages\python_twitter\twitter.py", line 3394, in _CheckForTwitterErro
r
raise TwitterError(data['error'])
python_twitter.twitter.TwitterError: Incorrect signature
Run Code Online (Sandbox Code Playgroud)
但是,如果更新只是一个单词,它可以工作:
status = api.PostUpdate('helloworld')
{'status': 'helloworld'}
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?
非常感谢提前,
霍夫
似乎在周末,以下的Delegate方法
- (void)OAuthTwitterController:(SA_OAuthTwitterController *)controller authenticatedWithUsername:(NSString *)username
开始为username参数返回nil.
我想知道是否有其他人使用Ben Gottlieb的SDK可以确认这个问题.
谢谢
我正在尝试构建一个"关注"按钮,其上方有一个垂直关注者.我有一个解决方案,直到Twitter今天退出1.0 API,现在需要一个Oauth解决方案.我的问题是,最好的,最简单的解决方案是什么(最好是JS).
这是旧的解决方案
$.getJSON("https://api.twitter.com/1/users/show.json?callback=?&screen_name=twitter",
function(data) {
$('.here').text(data);
});
Run Code Online (Sandbox Code Playgroud)
而我现在得到的错误
GET https://api.twitter.com/1/users/show.json?callback=jQuery20205200183007400483_1371012819892&screen_name=twitter&_=1371012819893 410 (Gone)
Run Code Online (Sandbox Code Playgroud) 我正在使用Twitter API按照文档实现OAuth: 仅应用程序身份验证 我使用Consumer key&Consumer Secret创建了POST请求,如下所示:
POST http://api.twitter.com/oauth2/token
Authorization: Basic T3k2TlA4SnpCVGRiNXlFTUt2dGswamJGSTpiSlpEYm1xeExyeDJKU25JbUplcWdlQTJkREcwZXg0bUNtOUdGTGJ1TGF3TkZkNkxqNg==
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=client_credentials
Run Code Online (Sandbox Code Playgroud)
我得到了一个有以下错误的回复:
"{"errors":[{"code":99,"label":"authenticity_token_error","message":"无法验证您的凭据"}]}"
虽然,我从我的应用程序设置中获取数据