我有一个公共应用程序想要从私人Twitter用户的帐户发布。
一个完美的例子是:http://www.usabchallenge.com/
在上面的示例中,您选择了5个玩家,然后单击下面的Twitter按钮,它将带您进入https://api.twitter.com/oauth/authorize?oauth_token=YOUR_TOKEN
屏幕。
从阅读Twitter文档 - 我似乎想要用Twitter按钮"登录"这将授予我访问其帐户的权限,当我有权访问时,我将能够代表他们发帖。
我对这个过程的流程感到困惑。我可以在Twitter的文档中阅读它,但我没有连接点。
引自Twitter的浏览器登录流程页面。我编写了便于阅读的步骤。
1. The application renders a “Sign in with Twitter” link or button.
2. The user clicks the sign in button.
3. The current web browser is redirected to Twitter (or a new browser is opened and directed to Twitter).
4. The user completes a login and authorization step at Twitter if needed.
5. Twitter redirects back to an URL under the application’s control, passing authorization information for the user.
步骤1和2是不言自明的。
步骤3 - 我是否在按钮本身上设置了href属性或操作?我如何进入此页面?
第4步是用户点击该api.twitter页面上的按钮,其中显示Authorize YOUR_APPLICATION to use your account?
第5步是您在oauth_callback
api电话中提供的oauth/request_token
参数。
所以我的两个问题是:
如何从登录按钮将某人引导至https://api.twitter.com/oauth/authorize?oauth_token=YOUR_TOKEN
屏幕? HREF?行动?是否有按钮的默认代码?
此外,我在哪里进行此oauth/request_token
调用以提供回调以使我进入第5步?一旦用户点击登录按钮就会被请求,这是有道理的,但与此相矛盾的是,登录按钮将用户带到https://api.twitter.com/oauth/authorize?oauth_token=YOUR_TOKEN
,而不是我可以拨打电话的地方REST API。
为了它的价值 - 我一直在使用this link(以及文档中的许多其他页面)作为参考。
我正在使用codebird连接到他们一直运行良好的REST API。
答案 0 :(得分:2)
第3步:将您的用户重定向到Twitter的这部分代码:
// redirect to auth website
$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();
我不知道你使用PHP的是什么,但是如果你有模板,你可以传递$ auth_url参数来在你的href中显示它,而不是改变你当前页面的位置。您还可以创建一个对您返回此URL的函数的ajax调用。 (我亲自制作了一个弹出窗口)
第4步:完全
第5步:我将代码的第二部分分隔在一个文件' callback.php' (我在Twitter中定义的回调网址指向此文件)这样我可以正确处理错误和重定向。 在这里定义它:
$reply = $cb->oauth_requestToken(['oauth_callback' => 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ]);