2015-02-10 89 views
0

我正在嘗試使用PHP進行Yammer身份驗證。該應用程序已註冊基本信息。我有我的客戶ID和祕密。使用PHP在yammer中進行身份驗證

在登錄頁面我安置一個鏈接https://www.yammer.com/dialog/oauth?client_id= {} myclientid重定向& = {頁面在我的服務器}

當我點擊它關係到Yammer的驗證鏈接,如果我簽約它會進入屏幕,要求用戶將應用程序鏈接到他的Yammer帳戶,如果不是,它會詢問用戶和密碼,到目前爲止,這很好。我授權應用程序。

它重定向到預期的位置,我在GET中獲得「code」參數。

然後我做一個GET請求:

https://www.yammer.com/oauth2/access_token.json?client_id= {myclientid} & client_secret = {mysecret} &碼= {代碼剛收到}

問題是,我只得到了錯誤頁面,上面寫着「我們對不起,但出了問題,我們已經收到有關這個問題的通知,我們很快就會看到它。「

當然,我沒有得到任何迴應,或永久令牌。

如果我把url直接放在瀏覽器中,我會得到相同的結果。

任何想法我做錯了什麼?

+0

您的步驟對我來說確實不錯。如果您繼續看到問題,您可能想要向Microsoft提交支持案例,但他們需要檢查用戶帳戶的狀態和客戶端ID,以查看是否有任何問題突出顯示,因爲您看到此問題。 – 2015-02-10 14:12:02

回答

0

我沒有看到任何錯誤。我剛纔也做了同樣的事情,我得到了我的代幣。我做的唯一不同的是,重定向url爲https://www.yammer.com,如https://developer.yammer.com/v1.0/docs/test-token中所述

我在瀏覽器上完成了所有步驟。

+0

這很奇怪,按照你說的方式,它的工作原理,它給了我代碼。然後我將它「粘貼」到URL參數中,它給我帶有令牌的json。 但是,如果我在程序中執行它,它根本不起作用。 我不知道這是否可能與我沒有在我的網站中使用https而是http相關(?) – luisfer 2015-02-10 18:13:54

0

明白了...

這很奇怪,但現在它的工作。在我將註冊頁面中的「重定向URI」更改爲https://www.yammer.com,然後返回到我的網絡服務器中的URI後,它開始工作。奇怪是不是?

如果有人發現這很有用,我用這個代碼(這代碼放在網頁認證過程後):

$yammercode = $_GET["code"]; 

define("REDIRECT_URI", "http://" . $_SERVER['SERVER_NAME'] . $_SERVER["SCRIPT_NAME"]); 
define("API_KEY", "{ my API key given by Yammer}"); 
define("API_SECRET", "{ my API secret }"); 

$params = array('client_id' => API_KEY, 
       'client_secret' => API_SECRET, 
       'code' => $yammercode); 
$url = "https://www.yammer.com/oauth2/access_token.json?" . http_build_query($params); 
$context = stream_context_create(array('http' => array('method' => 'GET'))); 
$response = file_get_contents($url, false, $context); 

echo "Response: $url<br><br>$response<br><br>"; 

現在我可以提取從$響應VAR的訪問令牌。

相關問題