1. 程式人生 > >PHP 接入(第三方登錄)QQ 登錄 OAuth2.0 過程中遇到的坑

PHP 接入(第三方登錄)QQ 登錄 OAuth2.0 過程中遇到的坑

體驗 獲取 get ref 通過 個人開發 ima 創建 key

前言

絕大多數網站都集成了第三方登錄,降低了註冊門檻,增強了用戶體驗。最近看了看 QQ 互聯上 QQ 登錄的接口文檔。接入 QQ 登錄的一般流程呢,是這樣的:先申請開發者 -> 然後創建應用(拿到一組 AppId 和 AppKey)-> 獲取 access_token -> 獲取 openid -> 調用 openApi 訪問或修改用戶信息。

然而,從申請個人開發者開始,坑就來了。

1. 申請(個人)開發者

QQ 互聯中申請開發者信息的頁面,一些重點太過簡陋,缺失細節,比如身份證正面照的相關拍攝細節完全沒有描述,我當時就直接上傳了這個“身份證正面照”,然後等了 3 天, 3 天後收到騰訊開放平臺的郵件通知說審核沒通過,需要手持身份證。好吧,那就重拍~~。問了客服之後確定了這個“手持身份證”拍攝的正確姿勢,然後我換了平臺,在騰訊開放平臺中改了我的申請信息,重新上傳了身份證,我註意到上傳框的下面有拍攝提示,看了下是個小姐姐的手持身份證照片,挺好看的,提示友好,比 QQ 互聯上的申請頁面好多了。又過了 2 天之後審核通過。

所以,申請開發者的話,最好還是在騰訊開放平臺申請吧,信息相對詳細,也更友好,QQ 互聯給人感覺好久沒維護了。

2. 接口調用——發布微博

(1)發布微博的接口 add_t:必需參數為 content 微博內容。調用時必須以數組鍵值對方式把參數傳遞進去,否則會報錯說沒提供參數。

$qc = new QC(‘你的access_token‘, ‘你的openid‘);
$weibo = [
    ‘content‘ => ‘微博內容‘
];
$result = $qc->add_t($weibo);

(2)發布帶圖片微博的接口 add_pic_t:必需參數為 content 微博內容,和 pic 微博圖片。調用時同樣以鍵值對方式傳參。而且,圖片是以二進制流的形式上傳的。而文檔中有關它的接口示例,我始終沒找到。最後,我采用了 CURLFIle

類實現圖片流上傳。

$qc = new QC(‘你的access_token‘, ‘你的openid‘);
$weibo = [
    ‘content‘ => ‘微博內容‘,
    ‘pic‘ => new CURLFile(‘要上傳的圖片路徑‘)
];
$result = $qc->add_pic_t($weibo);

註意到 pic 參數值為 CURLFile 類的實例(圖片路徑最好是絕對路徑)。網上有些資料介紹了 file(image_path) 和 file_get_contents(image_path) 方式設置 pic 參數,但我這裏都沒有成功(微博發布成功,但沒有圖片)。

小結

主要的坑就這兩個,審核平臺問題和微博圖片上傳問題。以後可能還會用,所以在這裏作以記錄,備忘。

最後,送上一個QQ互聯和騰訊開放平臺的歷史遺留問題相關鏈接:qq互聯 騰訊開放平臺 區別?

PHP 接入(第三方登錄)QQ 登錄 OAuth2.0 過程中遇到的坑