2011-07-01 33 views
33

使用Facebook的PHP SDK,我可以在我的網站上很快地使Facebook登錄工作。他們只需設置一個可以非常容易地訪問的$user變量。Twitter OAuth(PHP):需要很好的基礎示例入門

我沒有這樣的運氣試圖讓Twitter的OAuth登錄工作......坦率地說,他們的github材料對於PHP和網頁設計相對較新的人來說是混淆和無用的,更不用說許多非官方的我試過的例子都是令人困惑或過時的。

我真的需要一些幫助讓Twitter登錄工作 - 我的意思只是一個基本的例子,我點擊登錄按鈕,我授權我的應用程序,它重定向到一個頁面,它顯示登錄用戶的名稱。

我真的很感謝你的幫助。

編輯我知道abraham's twitter oauth的存在,但它提供了幾乎沒有任何指示讓他的東西工作。

+0

回來呀,我真的一直在尋找的這些作品是一個基本例子,太。所以很多人似乎只是舉例說明不起作用。 – cfrederich

+0

你是否反對使用像zend框架這樣的框架?如果沒有的話,有一些工作的例子。 – BRampersad

回答

27

我只是想亞伯拉罕的twitteroauth的從GitHub,它似乎爲我工作的罰款。這是我做過什麼

  1. 混帳克隆https://github.com/abraham/twitteroauth.git
  2. 上傳到這個虛擬主機提供商您使用域,也就是說,www.example.com
  3. 轉到Twitter Apps並註冊您的應用程序。你需要的是(假設你會使用亞伯拉罕在http://www.example.com/twitteroauth託管twitteroauth的例子)的變化
    一)報名網站將http://www.example.com/twitteroauth
    二)應用類型將是瀏覽器
    C)回調URL是http://www.example.com/twitteroauth/callback.php(Callback.php是包括在GIT源)
  4. 一旦你這樣做,你會得到CONSUMER_KEY和CONSUMER_SECRET,你可以從twitteroauth的分佈config.php文件更新。還設置回調爲http://www.example.com/twitteroauth/callback.php

就是這樣。如果你現在導航到http://www.example.com/twitteroauth,你會得到一個「用Twitter登錄」,它會帶你到Twitter,授權請求,並讓你回到index.php頁面。

編輯: 例子不能工作,但不要擔心。按照上述步驟並上傳到服務器。 請確保您從github資源庫(即config-sample.php-> config)重命名該文件。PHP

,如果你想看到一個工作樣本,發現它here

+0

謝謝,這有效......但我如何訪問'$ content'數組中的特定元素?如果我嘗試'$ twittername = $ content ['screen_name'];'我得到錯誤'致命錯誤:不能使用stdClass類型的對象作爲數組' – tnw

+3

它存儲爲StdClass(PHP中使用的Generic Empty類)。您可以訪問屏幕名稱爲$ content - > {screen_name} – rajasaur

+3

這兩個示例均已關閉。 –

2

這裏是一步一步的指導使用PHP Twitter的OAuth的API集成到Web的應用程序。請遵循教程。

http://www.smarttutorials.net/sign-in-with-twitter-oauth-api-using-php/

您需要創建Twitter的應用程序首先會thorugh以下網址

https://apps.twitter.com/

然後,你需要提供對Twitter的應用程序所需的信息。一旦你提供了所有的信息,然後保存。您將獲得Twitter應用程序消費者密鑰和消費者密鑰。

請從上面的鏈接下載源文件,並用您的使用者密鑰(API密鑰),消費者密鑰(API密鑰)和回調URL替換TWITTER_CONSUMER_KEY,TWITTER_CONSUMER_SECRET和TWITTER_OAUTH_CALLBACK。然後將其上傳到您的服務器。現在它會成功。

+0

感謝您加入!這是我的一個老問題,但顯然仍然有用作爲參考。 – tnw

26

這一個是獲得授權的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); 
} 
?> 
+3

這很好。從字面上看,只是複製和粘貼更新了消費者密鑰並返回了網址,並按預期運行。 –

+0

真棒!我整天都在網上搜索過去兩天。但我只得到舊的twitteroauth代碼。獎勵!這工作順利,如黃油! – A100WebSolutions

+0

「add autoload note:在autoload.php中檢查文件路徑」我們必須檢查什麼?我應該在這個文件中修改什麼? – Fred37b