ホームページ > 記事 > PHPフレームワーク > Thinkphp が Douyin SDK をどのように統合するかを理解する
<img src="https://img.php.cn/upload/article/202008/14/2020081416430198815.jpg" alt="Thinkphp が Douyin SDK をどのように統合するかを理解する" >
Douyin の公式 SDK に関するチュートリアルが少なすぎるため、先人たちが将来の世代に楽しんでもらえるように木を植えるという精神でこのブログを書きました。シェード
ステップ 1: Douyin 公式 SDK をダウンロード
ダウンロード アドレス: Douyin SDK 公式ダウンロード
選択 Php ダウンロード アドレス
ダウンロード可能
関連する学習の推奨事項:thinkphp
##ステップ 2: SDK をインポートします
1. ダウンロードした圧縮ファイルを解凍します2. thinkphp プロジェクトのルート ディレクトリにありますextend ディレクトリ (アプリケーション ディレクトリと同じレベル) の下に新しい
Douyin ディレクトリを作成し、# の下に新しい
Open ディレクトリ ## を作成します。 ##Douyin
ディレクトリ
#3. 解凍した php-sdk/douyin_open/lib ディレクトリ内のすべてのファイルとフォルダーを、新しく作成した にコピーします。 Douyin\Open
ディレクトリ下コピーが完了すると、ディレクトリ構造は次のようになります
##ステップ 3: guzzlehttp の依存関係をインストールする
Douyin の SDK は基本的に guzzlehttp によって送信されたリクエストに基づいているため、依存関係をインストールするには
インストールには Composer
を使用します。
をインストールしていない場合は、最初にインストールしてください1. 実行します。コマンド
composer require guzzlehttp/ guzzle:~6.0
インターフェイス呼び出しは、ダウンロードした SDK の組み込み php-sdk\douyin_open\test\Api を参照できます。これには、次のものがほとんど含まれています。
「デモンストレーション権限を持っているだけで、ユーザー情報を取得します」<pre class="brush:php;toolbar:false"><?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=&#39;&#39;)
{
//创建默认API的实例,verify=false不做ssl验证,否则可能报错,根据实际情况而定
$apiInstance = new DefaultApi(new Client([&#39;verify&#39; => false]));
//填写自己的client_key
$client_key = "xxx";
//填写自己的client_secret
$client_secret = "xxx";
$grant_type = &#39;authorization_code&#39;;//根据官方文档填写
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() == &#39;error&#39;) {
return error("登录失败");
}
//获取返回数据
$data=$result->getData();
//获取openid和access_toekn
$openid = $data->getOpenId();
$access_token = $data->getAccessToken();
//创建用户信息API
$userApi = new UserInfoApi(new Client([&#39;verify&#39; => false]));
//获取用户信息
$userInfo = $userApi->oauthUserinfoGetWithHttpInfo($access_token,$openid);
dump($userInfo);
}
}</pre>
よくある質問
の呼び出しについて参照できます。 ##1. [0] cURL エラー 60: SSL 証明書の問題: ローカル発行者の証明書を取得できません (https://curl.haxx.se/libcurl/c/libcurl-errors.html を参照) エラー 問題の原因
このエラーは SSL 証明書の検証の理由によるものです解決策 1
:# を変更するだけです##$apiInstance = new DefaultApi(new Client());から $apiInstance = new DefaultApi(new Client(['verify'=>false])); 以上です、主に変更します新しい Client() はここにあります。他の API は同じです。
解決策 2: ca-bundle.crt をダウンロードし、対応するディレクトリに置き、php.ini ファイルにパスを設定します。https ://github.com/bagder/ca-bundle/blob/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle. crt
php.ini の最後に追加します、<pre class="brush:php;toolbar:false">curl.cainfo="真实路径/ca-bundle.crt"</pre>
Web サーバーを再起動します
2. 設定が無効であることを示すプロンプト
承認されたログイン インターフェイスを呼び出す
認証失敗または無効な構成を求めるプロンプト
問題の原因
申請されたアプリケーションは
モバイルですapplicationですが、実際の呼び出しは web applicationweb scan code です。Web アプリケーションには、適用時に承認されたドメイン コールバックがあります。設定では、コールバック ドメイン名
# を入力します。 解決策
##3. ユーザー情報レポートの取得 「e_account_role」の値が無効です。「EAccountM」、「EAccountS」、「EAccountK」のいずれかである必要があります
このエラーは ## を呼び出すときに発生します#UserInfoApi
oauthUserinfoGetWithHttpInfo
ユーザー情報の ## が返されるため #e_account_roleフィールドが null ですが、API を変更することで解決できます。このエラーは通常、モバイル アプリケーションの client_key を使用して Web アプリケーションの承認を強制するなど、API への異常な呼び出しによって発生します。 #ソリューション計画
<p>返されたユーザー情報の <code>e_account_role
フィールドが null であるため、API を修正することで解決できます。
TP のエラー プロンプトに従って、エラー レポートを に送信できます。 Douyin\Open\Model \OauthUserinfoResponseData.php 564 行目
#564 行目でエラーが発生しました#通常のユーザー情報を取得するには、563 行目から 570 行目をコメントアウトしてください
変更前:
プログラミング ビデオ
以上がThinkphp が Douyin SDK をどのように統合するかを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。