我正在试图通过我的网站为有Twitter账号的用户发布推文发布用户界面,并在他们的主页上发布推文。此外,我喜欢访问网络摄像头,以卡通他们的脸,并将该图像与推文放在一起。 (我的主要目标是卡通化图像帖子)
最初我使用Codebird PHP库发推文。 https://github.com/jublonet/codebird-php
我测试了我的第一篇文章,就像他们的github页面中提供的相同示例Codebird一样。
require_once ('codebird.php');
\Codebird\Codebird::setConsumerKey('YOURKEY', 'YOURSECRET'); // static, see README
$cb = \Codebird\Codebird::getInstance();
/*You may either set the OAuth token and secret, if you already have them:*/
$cb->setToken('YOURTOKEN', 'YOURTOKENSECRET');
这部分很好用。
但这只适用于应用开发者。因为YOURTOKEN和YOURTOKEN SECRET位于https://apps.twitter.com/app/页面。
因此我尝试运行Codebird示例中给出的代码。
<?php
require_once('./src/codebird.php');
\Codebird\Codebird::setConsumerKey('REPLACE_WITH_MY_CONSUMER_KEY');
$cb = \Codebird\Codebird::getInstance();
/*$cb->setToken('REPLACE_WITH_MY_CONSUMER_TOKEN');
session_start();
if (!empty($_SESSION['oauth_token'])) {
echo 'ttt';
var_dump($_SESSION['oauth_token']);
// get the request token
$reply = $cb->oauth_requestToken([
'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
]);
// store the token
$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
$_SESSION['oauth_verify'] = true;
// redirect to auth website
$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();
} elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) {
// verify the token
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
unset($_SESSION['oauth_verify']);
// get the access token
$reply = $cb->oauth_accessToken([
'oauth_verifier' => $_GET['oauth_verifier']
]);
// store the token (which is different from the request token!)
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
// send to same URL, without oauth GET parameters
header('Location: ' . basename(__FILE__));
die();
}
// assign access token on each page load
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
$reply = $cb->statuses_update('status=Whohoo, I just Tweeted!');
?>
但它给出了这个错误。
致命错误:未捕获的Codebird \ CodebirdCredentialsException:要调用 此API必须设置OAuth访问令牌。
任何线索?或;
有什么简单的方法像Facebook处理这件事很容易。它重定向到Facebook登录页面,在登录后使用可以从我的网站发布任何用户。因此,任何为Twitter做某事的方法,比如调用本机登录窗口并从该登录会话中获取令牌和秘密,并从我的网站发布推文消息?
答案 0 :(得分:0)
我刚从我的应用程序页面(https://apps.twitter.com/app)添加了回调网址,现在它的工作非常完美。如果用户未登录,它将自动重定向到登录页面(如下图所示),或者请求批准获取令牌和密钥的权限。
从设置标签回调网址:
如果用户未登录,则用户重定向工作正常: