Я пытаюсь предоставить интерфейс публикации твитеров с моего веб-сайта для пользователей, имеющих аккаунт в твиттере, и публиковать твиты на своей домашней странице. Кроме того, мне нравится давать доступ к веб-камере, чтобы мультиплицировать их лицо и помещать это изображение с сообщением. (моя главная цель — создание мультипликационных сообщений)
Сначала я использую PHP-библиотеку Codebird, чтобы сделать твит. https://github.com/jublonet/codebird-php
Я проверил свой первый пост, как тот же пример Codebird, приведенный на их странице GitHub.
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 СЕКРЕТ в 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!');
?>
Но это дает эту ошибку.
Неустранимая ошибка: Uncaught Codebird \ CodebirdCredentialsException: для вызова
этот API, токен доступа OAuth должен быть установлен.
Любой ключ к этому? или же;
Есть ли что-нибудь лёгкое, как Facebook, способ справиться с этим очень легко. Он перенаправляет на страницу входа в Facebook и после входа в систему может публиковать сообщения любого пользователя с моего сайта. Поэтому есть какой-нибудь способ сделать что-то для твиттера, например, вызвать собственное окно входа в систему и получить токен и секрет из сеанса входа в систему и опубликовать твит-сообщение с моего сайта?
Я только что добавил URL обратного вызова со страницы моего приложения (https://apps.twitter.com/app) и теперь это отлично работает. Он будет автоматически перенаправлен на страницу входа (как показано ниже), если пользователь не вошел в систему или попросит разрешения подтвердить получение токена и секретного ключа.
Обратный вызов URL с вкладки настроек:
Перенаправление пользователя работает нормально, если пользователь не вошел в систему:
Других решений пока нет …