Как войти с помощью twitter с помощью PHP и AJAX

Я использую twitteroauth.php для добавления функций входа на мой сайт с помощью twitter api.

Он работает нормально. Но я хочу реализовать то же самое с помощью jQuery и AJAX, чтобы страница не обновлялась при возврате.

Ниже приведен фрагмент кода

<?php require("twitter/twitteroauth.php"); require 'config/twconfig.php'; session_start(); $twitteroauth = new TwitterOAuth(YOUR_CONSUMER_KEY, YOUR_CONSUMER_SECRET); // Requesting authentication tokens, the parameter is the URL we will be redirected to $request_token = $twitteroauth->getRequestToken('http://list.2lessons.com/fbtwLogin/getTwitterData.php'); // Saving them into the session $_SESSION['oauth_token'] = $request_token['oauth_token']; $_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; // If everything goes well.. if ($twitteroauth->http_code == 200) { // Let's generate the URL and redirect $url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']); header('Location: ' . $url); } else { // It's a bad idea to kill the script, but we've got to know when there's an error. die('Something wrong happened.'); } ?> 

Related of "Как войти с помощью twitter с помощью PHP и AJAX"

Я искал что-то похожее на Facebook JS SDK для входа в Twitter. Facebook JS SDK не обновляет страницу при входе в систему. Я сделал свой собственный, используя всплывающее окно JS. На самом деле он не использует AJAX.

а. Для запуска всплывающего окна вам нужна ссылка:

<a href = "#" onclick = "window.open ('http://localhost.com/twitter_login.php&apos;, 'Twitter', 'width = 640, height = 480');"> Войти в Twitter </ а>

б. PHP-скрипт для входа в Twitter (код, который вы отправили выше) и обратный вызов (где пользователь приземляется после входа в систему).

Обратный вызов должен выглядеть так:

 <?php // In php part you should store information about login (AccessToken, User info, and anything else you want) into DB ?> <html> <head><title></title></head> <body> <!-- In html part I let user know that he/she has been logged in. In my case, Twitter icons --> <script type="text/javascript"> if(window.opener && !window.opener.closed) { window.opener.refreshTwitterIcons(); // function is called in parent window from which user has triggered the popup } window.close(); // Closing the popup </script> </body> </html> 

Это довольно просто, используя функцию $ .ajax () jQuery , где вы в основном размещаете свои данные в своем PHP-коде.

Единственное, что нужно изменить, это раздел заголовка – вы можете захотеть вернуть JSON-кодированное сообщение – например, «ОК» или «Сообщение об ошибке», чтобы вы могли отреагировать на это.

 $.ajax({ url: "your_file.php", type: 'post', dataType: 'json', success: function(data, status, xhr) { if (data.msg == 'OK') { // all ok, user logged in } else { // display error console.log(data.msg); } } }); 

И часть PHP:

 <?php require("twitter/twitteroauth.php"); require 'config/twconfig.php'; session_start(); $twitteroauth = new TwitterOAuth(YOUR_CONSUMER_KEY, YOUR_CONSUMER_SECRET); // Requesting authentication tokens, the parameter is the URL we will be redirected to $request_token = $twitteroauth->getRequestToken('http://list.2lessons.com/fbtwLogin/getTwitterData.php'); // Saving them into the session $_SESSION['oauth_token'] = $request_token['oauth_token']; $_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; // If everything goes well.. if ($twitteroauth->http_code == 200) { // Let's generate the URL and redirect $url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']); echo json_encod(array('msg' => 'OK')); } else { // It's a bad idea to kill the script, but we've got to know when there's an error. echo json_encod(array('msg' => 'Something wrong happened.')); } ?>