了解Thinkphp整合抖音SDK的實作方法
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/202008/14/2020081416430198815.jpg" class="lazy" alt="了解Thinkphp整合抖音SDK的實作方法" >
由於抖音官方SDK相關教學太少, 所以本著前人種樹後人乘涼的精神,寫下本篇部落格
第一步:下載抖音官方SDK
#下載位址:抖音SDK官方下載
選擇 Php下載位址
進行下載即可
#相關學習推薦:thinkphp
第二步:將SDK匯入
1.解壓縮下載的壓縮檔案
2.在thinkphp專案的根目錄(與application目錄同級)下的extend
目錄下新建Douyin
目錄,再在Douyin
目錄中新建Open
目錄
3.將解壓縮出來的php-sdk/douyin_open/lib目錄裡面的所有檔案和資料夾全部複製到剛才新建的Douyin\Open
目錄下
複製完成後目錄結構如下
第三步:安裝guzzlehttp依賴
因為抖音的SDK基本上都是基於guzzlehttp
發送的請求,所以需要安裝依賴
我這裡使用Composer
進行安裝,如你還未安裝Composer
,請先安裝
- 1.執行指令
composer require guzzlehttp/ guzzle:~6.0
- 2.安裝完成後即可呼叫介面
#第四步:介面呼叫
介面呼叫可參考下載的SDK內建的php-sdk\douyin_open\test\Api
,裡面有大部分API呼叫方法,可參考呼叫
我這裡只示範授權並取得使用者資訊
<?php /** * Created by PhpStorm. * User: bigniu * Date: 2020-04-25 * Time: 21:46:42 */ namespace app\api\controller\v1; use Douyin\Open\Api\DefaultApi; use Douyin\Open\Api\UserInfoApi; use Exception; use GuzzleHttp\Client; use think\Controller; class Douyin extends Controller { public function auth($code='') { //创建默认API的实例,verify=false不做ssl验证,否则可能报错,根据实际情况而定 $apiInstance = new DefaultApi(new Client(['verify' => false])); //填写自己的client_key $client_key = "xxx"; //填写自己的client_secret $client_secret = "xxx"; $grant_type = 'authorization_code';//根据官方文档填写 try { //调用获取AccessToken的接口 $result = $apiInstance->oauthAccessTokenGet($client_key, $client_secret, $code, $grant_type); } catch (Exception $e) { return error("登录失败"); } //判断返回的数据是否为空 if (!$result) { return error("登录失败"); } //判断返回的Message是否为error if ($result->getMessage() == 'error') { return error("登录失败"); } //获取返回数据 $data=$result->getData(); //获取openid和access_toekn $openid = $data->getOpenId(); $access_token = $data->getAccessToken(); //创建用户信息API $userApi = new UserInfoApi(new Client(['verify' => false])); //获取用户信息 $userInfo = $userApi->oauthUserinfoGetWithHttpInfo($access_token,$openid); dump($userInfo); } }
常見問題整理
一、[0] cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) 錯誤
問題原因
#該錯誤是由於SSL憑證驗證的原因
解決方案1:
只需要把$apiInstance = new DefaultApi(new Client());
改為$apiInstance = new DefaultApi(new Client(['verify'=>false]));
即可,主要是修改new Client()這裡,其他API同樣
解決方案2: 下載一個ca-bundle.crt ,放到對應的目錄,在php.ini檔案中設定下路徑
https://github.com/bagder/ca-bundle/blob/e9175fec5d0c4d42de24ed6d84a06d504d5e5a0c4d42de24ed6d84a06d504d5e. crt
在php.ini的最後加入,
curl.cainfo="真实路径/ca-bundle.crt"
重啟web伺服器
#二、提示設定無效
呼叫授權登入介面https:// open.douyin.com/platform/oauth/connect?client_key=xxx&response_type=code&scope=user_info&redirect_uri=redirect_uri&state=1
提示授權失敗或配置失效
問題原因
申請的應用程式為行動應用程式
,實際呼叫為網頁應用程式
web掃碼,網頁應用程式在申請的時候有授權網域回調的配置,就是填寫回呼網域的
#解決方案
重新申請網頁應用,需要填寫這個回呼位址
三、取得使用者資訊封包Invalid value for 'e_account_role', must be one of 'EAccountM', 'EAccountS', 'EAccountK'
呼叫UserInfoApi
的oauthUserinfoGetWithHttpInfo
介面出現該錯誤
問題原因
##由於傳回使用者資訊裡的e_account_role欄位為null所導致,可透過修改API解決,這個錯誤一般為非正常呼叫API所導致,如:使用行動應用程式的client_key強制授權網頁應用程式導致
#解決方案
由於傳回使用者資訊裡的e_account_role
欄位為null所導致,可透過修改API解決
根據TP的錯誤提示我們可以發下報錯發生在Douyin\Open\Model \OauthUserinfoResponseData.php line 564
錯誤發生在第564行程式碼
將563 - 570行註解掉即可取得正常使用者資訊
#修改前:
修改後:
相關學習推薦:程式設計影片##########
以上是了解Thinkphp整合抖音SDK的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

Laravel 和 ThinkPHP 框架的效能比較:ThinkPHP 效能通常優於 Laravel,專注於最佳化和快取。 Laravel 性能良好,但對於複雜應用程序,ThinkPHP 可能更適合。

《開發建議:如何利用ThinkPHP框架實現非同步任務》隨著網路技術的快速發展,Web應用程式對於處理大量並發請求和複雜業務邏輯的需求也越來越高。為了提高系統的效能和使用者體驗,開發人員常常會考慮利用非同步任務來執行一些耗時操作,例如發送郵件、處理文件上傳、產生報表等。在PHP領域,ThinkPHP框架作為一個流行的開發框架,提供了一些便捷的方式來實現非同步任務。

ThinkPHP 安裝步驟:準備 PHP、Composer、MySQL 環境。使用 Composer 建立專案。安裝 ThinkPHP 框架及相依性。配置資料庫連線。產生應用程式碼。啟動應用程式並造訪 http://localhost:8000。

ThinkPHP 是一款高效能的 PHP 框架,具備快取機制、程式碼最佳化、平行處理和資料庫最佳化等優勢。官方性能測試顯示,它每秒可處理超過 10,000 個請求,實際應用中被廣泛用於京東商城、攜程網等大型網站和企業系統。

開發建議:如何利用ThinkPHP框架進行API開發隨著網際網路的不斷發展,API(ApplicationProgrammingInterface)的重要性也日益凸顯。 API是不同應用程式之間進行通訊的橋樑,它可以實現資料共享、功能呼叫等操作,為開發者提供了相對簡單且快速的開發方式。而ThinkPHP框架作為一款優秀的PHP開發框架,具有高效能、可擴展且易用
