Thinkphp が Douyin SDK をどのように統合するかを理解する

coldplay.xixi
リリース: 2020-08-14 16:48:20
転載
5087 人が閲覧しました

<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 を使用します。

Composer

をインストールしていない場合は、最初にインストールしてください1. 実行します。コマンド composer require guzzlehttp/ guzzle:~6.0

  • 2. インストールが完了したら、インターフェイス
  • を呼び出すことができます。ステップ 4: インターフェイス呼び出し

インターフェイス呼び出しは、ダウンロードした SDK の組み込み php-sdk\douyin_open\test\Api を参照できます。これには、次のものがほとんど含まれています。

「デモンストレーション権限を持っているだけで、ユーザー情報を取得します」<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?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=&amp;#39;&amp;#39;) { //创建默认API的实例,verify=false不做ssl验证,否则可能报错,根据实际情况而定 $apiInstance = new DefaultApi(new Client([&amp;#39;verify&amp;#39; =&gt; false])); //填写自己的client_key $client_key = &quot;xxx&quot;; //填写自己的client_secret $client_secret = &quot;xxx&quot;; $grant_type = &amp;#39;authorization_code&amp;#39;;//根据官方文档填写 try { //调用获取AccessToken的接口 $result = $apiInstance-&gt;oauthAccessTokenGet($client_key, $client_secret, $code, $grant_type); } catch (Exception $e) { return error(&quot;登录失败&quot;); } //判断返回的数据是否为空 if (!$result) { return error(&quot;登录失败&quot;); } //判断返回的Message是否为error if ($result-&gt;getMessage() == &amp;#39;error&amp;#39;) { return error(&quot;登录失败&quot;); } //获取返回数据 $data=$result-&gt;getData(); //获取openid和access_toekn $openid = $data-&gt;getOpenId(); $access_token = $data-&gt;getAccessToken(); //创建用户信息API $userApi = new UserInfoApi(new Client([&amp;#39;verify&amp;#39; =&gt; false])); //获取用户信息 $userInfo = $userApi-&gt;oauthUserinfoGetWithHttpInfo($access_token,$openid); dump($userInfo); } }</pre><div class="contentsignin">ログイン後にコピー</div></div>

よくある質問

の呼び出しについて参照できます。 ##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. crtphp.ini の最後に追加します、<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">curl.cainfo=&quot;真实路径/ca-bundle.crt&quot;</pre><div class="contentsignin">ログイン後にコピー</div></div>Web サーバーを再起動します

2. 設定が無効であることを示すプロンプト

承認されたログイン インターフェイスを呼び出す

https://open.douyin.com/platform/oauth/connect?client_key=xxx&response_type=code&scope=user_info&redirect_uri=redirect_uri&state=1

認証失敗または無効な構成を求めるプロンプト

問題の原因

申請されたアプリケーションは

モバイルですapplication

ですが、実際の呼び出しは web applicationweb scan code です。Web アプリケーションには、適用時に承認されたドメイン コールバックがあります。設定では、コールバック ドメイン名

# を入力します。 解決策

##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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート