Я реализовал OAuth для твиттера, используя библиотеку PHP Авраама Уильямса. Он отлично работает на моем личном веб-сервере (Apache). Но когда я загрузил все свои файлы приложений в публичный домен веб-хостинга, он перестает работать. Когда я нажимаю кнопку «войти в систему с помощью учетной записи Twitter», которая указывает пользователю «connect.php», который создает ссылку для проверки подлинности моего приложения, он не создает эту ссылку. Скорее остановка управления на этой странице 'connect.php'. Вот connect.php
<?php
session_start();
require_once 'twitteroauth/TwitterOAuth.php';
define("CONSUMER_KEY", "***************");
define("CONSUMER_SECRET", "********************************");
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request_token = $connection->getRequestToken('http://babar.phpnet.us/callback.php');
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] =
$request_token['oauth_token_secret'];
$url = $connection->getAuthorizeURL($request_token);
header('Location: ' . $url);
?>
Вот callback.php
<?php
session_start();
require_once 'twitteroauth/TwitterOAuth.php';
define("CONSUMER_KEY", "****************");
define("CONSUMER_SECRET", "*********************************");
if (
isset($_REQUEST['oauth_token'])
&& $_SESSION['oauth_token'] !== $_REQUEST['oauth_token'])
{
//echo 'Session expired';
header('Location: ./connect.php');
}
else {
$connection = new TwitterOAuth(CONSUMER_KEY,CONSUMER_SECRET,
$_SESSION['oauth_token'],$_SESSION['oauth_token_secret']);
$_SESSION['access_token'] =
$connection->getAccessToken($_REQUEST['oauth_verifier']);
header('Location: index1.php');
}
?>
index1.php
if (empty($_SESSION['access_token'])) {
header('Location: ./connect.php');
}
require_once 'twitteroauth/TwitterOAuth.php';
define("CONSUMER_KEY", "**************");
define("CONSUMER_SECRET", "*******************");
$connection = new TwitterOAuth(CONSUMER_KEY,CONSUMER_SECRET,
$_SESSION['access_token']['oauth_token'],
$_SESSION['access_token']['oauth_token_secret']
);
include("index.php");
$tweetmsg = $_POST['t_update'];
$result = $connection->post('statuses/update', array('status' => $tweetmsg));
if (200 === $connection->http_code) {
//echo'tweet posted';
}
else {
$resultmsg = 'Could not post Tweet. Error: '.$httpCode.'
Reason:'.$result->error;
//echo $resultmsg;
}
?>