Twitter OAuth (PHP):需要好的、基本的例子才能开始

2022-08-30 12:54:39

使用Facebook的PHP SDK,我能够让Facebook登录在我的网站上非常快速地工作。他们只是设置了一个可以很容易地访问的变量。$user

我没有这样的运气试图让Twitter的OAuth登录工作...坦率地说,对于对PHP和网页设计相对较新的人来说,他们的github材料令人困惑且毫无用处,更不用说我尝试过的许多非官方示例同样令人困惑或过时了。

我真的需要一些帮助来让Twitter登录工作 - 我的意思是只是一个基本的例子,我点击登录按钮,我授权我的应用程序,它重定向到一个页面,它显示登录用户的名称。

我非常感谢您的帮助。

编辑我知道亚伯拉罕的推特oauth的存在,但它几乎没有提供任何说明来让他的东西工作。


答案 1

这是获取URL进行授权的基本示例,然后在从twitter返回时获取用户基本信息

<?php
session_start();
//add autoload note:do check your file paths in autoload.php
require "ret/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
//this code will run when returned from twiter after authentication
if(isset($_SESSION['oauth_token'])){
  $oauth_token=$_SESSION['oauth_token'];unset($_SESSION['oauth_token']);
  $consumer_key = 'your consumer key';
  $consumer_secret = 'your secret key';
  $connection = new TwitterOAuth($consumer_key, $consumer_secret);
 //necessary to get access token other wise u will not have permision to get user info
  $params=array("oauth_verifier" => $_GET['oauth_verifier'],"oauth_token"=>$_GET['oauth_token']);
  $access_token = $connection->oauth("oauth/access_token", $params);
  //now again create new instance using updated return oauth_token and oauth_token_secret because old one expired if u dont u this u will also get token expired error
  $connection = new TwitterOAuth($consumer_key, $consumer_secret,
  $access_token['oauth_token'],$access_token['oauth_token_secret']);
  $content = $connection->get("account/verify_credentials");
  print_r($content);
}
else{
  // main startup code
  $consumer_key = 'your consumer key';
  $consumer_secret = 'your secret key';
  //this code will return your valid url which u can use in iframe src to popup or can directly view the page as its happening in this example

  $connection = new TwitterOAuth($consumer_key, $consumer_secret);
  $temporary_credentials = $connection->oauth('oauth/request_token', array("oauth_callback" =>'http://dev.crm.alifca.com/twitter/index.php'));
  $_SESSION['oauth_token']=$temporary_credentials['oauth_token'];       $_SESSION['oauth_token_secret']=$temporary_credentials['oauth_token_secret'];$url = $connection->url("oauth/authorize", array("oauth_token" => $temporary_credentials['oauth_token']));
// REDIRECTING TO THE URL
  header('Location: ' . $url); 
}
?>

答案 2

我刚刚从github尝试了亚伯拉罕的twitteroauth,它似乎对我来说工作得很好。这就是我所做的

  1. git clone https://github.com/abraham/twitteroauth.git
  2. 将其上传到您的网络主机与域,例如,www.example.com
  3. 转到 Twitter 应用并注册你的应用程序。您需要的更改是(假设您将使用 http://www.example.com/twitteroauth)a
    应用程序网站将 http://www.example.com/twitteroauth
    b)应用程序类型将是浏览器
    c)回调url是 http://www.example.com/twitteroauth/callback.php(回调.php包含在git源代码中)
  4. 完成此操作后,您将获得CONSUMER_KEY和CONSUMER_SECRET,您可以在配置中更新.php来自twitteroauth发行版。还要将回调设置为与 http://www.example.com/twitteroauth/callback.php

就是这样。如果您现在导航到 http://www.example.com/twitteroauth,您将获得一个“使用Twitter登录”,这将带您到Twitter ,授权请求并让您返回到索引.php页面。

编辑:示例将不起作用,但不用担心。按照上述步骤操作并上传到服务器。确保从github存储库重命名文件,即config-sample.php->config.php

如果您想查看工作示例,请在此处找到


推荐