Heim PHP-Framework Denken Sie an PHP Verstehen Sie, wie Thinkphp das Douyin SDK integriert

Verstehen Sie, wie Thinkphp das Douyin SDK integriert

Aug 14, 2020 pm 04:44 PM
sdk thinkphp

<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/202008/14/2020081416430198815.jpg" class="lazy" alt="Verstehen Sie, wie Thinkphp das Douyin SDK integriert" ><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/202008/14/2020081416430198815.jpg" class="lazy" alt="Verstehen Sie, wie Thinkphp das Douyin SDK integriert" >

由于抖音官方SDK相关教程太少, 所以本着 前人种树后人乘凉 的精神,写下本篇博客

第一步:下载抖音官方SDK

下载地址:抖音SDK官方下载
选择 Php下载地址 进行下载即可

相关学习推荐:thinkphp

第二步:将SDK导入

1.解压下载的压缩文件

2.在thinkphp项目的根目录(与application目录同级)下的extend目录下新建Douyin目录,再在Douyin目录里新建Open目录

3.将解压出来的php-sdk/douyin_open/lib目录里面的所有文件和文件夹全部复制到刚才新建的DouyinOpen目录下

复制完成后目录结构如下

第三步:安装guzzlehttp依赖

因为抖音的SDK基本都是基于guzzlehttp发送的请求,所以需要安装依赖

我这里使用Composer进行安装,如你还未安装Composer ,请先安装

  • 1.执行命令 composer require guzzlehttp/guzzle:~6.0
  • 2.安装完成后即可调用接口

第四步:接口调用

接口调用可参考下载的SDK内置的php-sdkdouyin_opentestApi,里面有大部分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=&#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);

  }
}
Nach dem Login kopieren

常见问题整理

一、[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([&#39;verify&#39;=>false])); 即可,主要是修改new Client()这里,其他API同样

解决方案2: 下载一个ca-bundle.crt ,放到对应的目录,在php.ini文件中配置下路径
https://github.com/bagder/ca-bundle/blob/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle.crt
在php.ini的末尾加入 ,

curl.cainfo="真实路径/ca-bundle.crt"
Nach dem Login kopieren

重启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'

调用UserInfoApioauthUserinfoGetWithHttpInfo接口出现该错误

问题原因

由于返回用户信息里的e_account_role

Weil es sich um die offiziellen Douyin-SDK-bezogenen Tutorials handelt Zu wenig, also schreibe ich diesen Blog im Sinne der Vorgänger, die Bäume pflanzten, damit zukünftige Generationen den Schatten genießen können

Schritt 1: Laden Sie das offizielle SDK von Douyin herunter

span>🎜🎜Download-Adresse: Offizieller Download des Douyin SDK
Wählen Sie PHP-Download-Adresse zum Herunterladen aus
🎜

🎜

🎜Verwandte Lernempfehlungen: thinkphp
🎜
🎜🎜Schritt 2 : Importieren Sie das SDK🎜🎜🎜1. Entpacken Sie die heruntergeladene komprimierte Datei🎜🎜2. Erstellen Sie einen neuen im Verzeichnis <code>extend im Stammverzeichnis des thinkphp-Projekts (auf derselben Ebene wie das Anwendungsverzeichnis) >Douyin-Verzeichnis und erstellen Sie dann ein neues Open-Verzeichnis im Douyin-Verzeichnis
🎜

🎜🎜3. Verschieben Sie die entpacktes php-sdk/douyin_open/lib-Verzeichnis Kopieren Sie alle darin enthaltenen Dateien und Ordner in das neu erstellte DouyinOpen-Verzeichnis
🎜

🎜

Nach der Kopie ist abgeschlossen, die Verzeichnisstruktur ist wie folgt
🎜

🎜

🎜Schritt 3: Guzzlehttp-Abhängigkeit installieren🎜🎜🎜 Da das SDK von Douyin im Wesentlichen auf guzzlehttp basiert, sendet es eine Anfrage, sodass Sie Abhängigkeiten installieren müssen. 🎜🎜Ich verwende Composer, um es zu installieren , bitte zuerst installieren🎜

  • 1. Führen Sie den Befehl composer require guzzlehttp/guzzle:~6.0
  • 2 aus , können Sie die Schnittstelle aufrufen
🎜🎜Schritt 4: Schnittstellenaufruf🎜🎜🎜Schnittstellenaufruf kann auf den integrierten php-sdkdouyin_opentestApi des heruntergeladenen SDK, das die meisten API-Aufrufmethoden enthält, können Sie sich auf den Aufruf beziehen🎜🎜Ich demonstriere hier nur die Autorisierung und den Erhalt von Benutzerinformationen🎜rrreee🎜🎜FAQ-Vereinbarung🎜🎜🎜1. [0] cURL-Fehler 60: SSL-Zertifikatproblem: Lokales Ausstellerzertifikat konnte nicht abgerufen werden (siehe https://curl.haxx.se/libcurl/c/libcurl- (errors.html) Fehler🎜🎜🎜Ursache des Problems🎜🎜🎜Dieser Fehler ist auf die Überprüfung des SSL-Zertifikats zurückzuführen🎜 🎜🎜Lösung 1🎜: 🎜🎜 Ändern Sie einfach $apiInstance = new DefaultApi(new Client()); zu <code>$apiInstance = new DefaultApi(new Client(['verify'= >false])); Das war's, ändern Sie hier hauptsächlich den neuen Client(), andere APIs sind gleich🎜 🎜Lösung 2: Laden Sie eine ca-bundle.crt herunter und legen Sie sie im entsprechenden Verzeichnis in php.ini ab. Konfigurieren Sie den Pfad in der Datei
https://github.com/bagder/ca-bundle/blob/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09 /ca-bundle.crt
Fügen Sie es am Ende von php.ini hinzu, 🎜rrreee🎜Starten Sie den Webserver neu 🎜🎜2. Melden Sie, dass die Konfiguration ungültig ist 🎜🎜Rufen Sie die Autorisierungs-Anmeldeschnittstelle auf https:/ /open.douyin.com/platform/oauth/connect?client_key=xxx&response_type=code&scope=user_info&redirect_uri=redirect_uri&state=1 Melden Sie, dass die Autorisierung fehlgeschlagen ist oder die Konfiguration ungültig ist🎜

🎜🎜🎜Ursache des Problems🎜🎜🎜Die Anwendung wurde angewendet für ist mobile Anwendung, aber der eigentliche Aufruf ist WebanwendungWeb-Scan-Code. Die Webanwendung hat die Berechtigung, die Rückrufdomäne auszufüllen Name
🎜

🎜🎜🎜Lösung🎜🎜🎜Bewerben Sie sich erneut für eine Webanwendung. Sie müssen diese Rückrufadresse eingeben
🎜

🎜🎜3. Benutzerinformationen abrufen und melden. Ungültiger Wert für „e_account_role“, muss einer von „ EAccountM‘, ‚EAccountS‘, ‚EAccountK‘🎜🎜Dieser Fehler tritt auf, wenn die oauthUserinfoGetWithHttpInfo-Schnittstelle von UserInfoApi aufgerufen wird🎜🎜🎜Ursache des Problems🎜🎜🎜aufgrund der Rückgabe von The Das Feld e_account_role in den Benutzerinformationen ist null, was durch eine Änderung der API behoben werden kann. Dieser Fehler wird im Allgemeinen durch abnormale API-Aufrufe verursacht, z. B. durch die Verwendung des client_key der mobilen Anwendung, um die Autorisierung des Webs zu erzwingen Anwendung. 🎜🎜🎜 Lösung 🎜🎜

Da das Feld e_account_role in den zurückgegebenen Benutzerinformationen null ist, kann es durch Ändern der API behoben werden. e_account_role字段为null所导致,可通过修改API解决
根据TP的错误提示我们可以发下报错发生在DouyinOpenModelOauthUserinfoResponseData.php line 564
错误发生在第564行代码

将563 - 570行注释掉即可获取正常用户信息

修改前:

修改后:Gemäß der Fehleraufforderung von TP können wir den Fehlerbericht senden code>DouyinOpenModelOauthUserinfoResponseData.php Zeile 564


Der Fehler ist in Zeile 564 aufgetreten

Kommentieren Sie die Zeilen 563–570 aus, um normale Benutzerinformationen zu erhalten

Vor der Änderung:

Ändern nach:

🎜🎜🎜🎜🎜Verwandte Lernempfehlungen: 🎜Programmiervideo🎜🎜🎜

Das obige ist der detaillierte Inhalt vonVerstehen Sie, wie Thinkphp das Douyin SDK integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So führen Sie das Thinkphp-Projekt aus So führen Sie das Thinkphp-Projekt aus Apr 09, 2024 pm 05:33 PM

Um das ThinkPHP-Projekt auszuführen, müssen Sie: Composer installieren, das Projektverzeichnis aufrufen und http://localhost:8000 aufrufen.

Es gibt mehrere Versionen von thinkphp Es gibt mehrere Versionen von thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP verfügt über mehrere Versionen, die für verschiedene PHP-Versionen entwickelt wurden. Zu den Hauptversionen gehören 3.2, 5.0, 5.1 und 6.0, während Nebenversionen dazu dienen, Fehler zu beheben und neue Funktionen bereitzustellen. Die neueste stabile Version ist ThinkPHP 6.0.16. Berücksichtigen Sie bei der Auswahl einer Version die PHP-Version, die Funktionsanforderungen und den Community-Support. Für optimale Leistung und Support wird empfohlen, die neueste stabile Version zu verwenden.

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Nov 22, 2023 pm 12:01 PM

„Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben“ Mit der rasanten Entwicklung der Internettechnologie stellen Webanwendungen immer höhere Anforderungen an die Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen und komplexer Geschäftslogik. Um die Systemleistung und das Benutzererlebnis zu verbessern, erwägen Entwickler häufig die Verwendung asynchroner Aufgaben, um einige zeitaufwändige Vorgänge auszuführen, z. B. das Senden von E-Mails, das Verarbeiten von Datei-Uploads, das Erstellen von Berichten usw. Im Bereich PHP bietet das ThinkPHP-Framework als beliebtes Entwicklungsframework einige praktische Möglichkeiten zur Implementierung asynchroner Aufgaben.

Was ist besser, Laravel oder Thinkphp? Was ist besser, Laravel oder Thinkphp? Apr 09, 2024 pm 03:18 PM

Leistungsvergleich von Laravel- und ThinkPHP-Frameworks: ThinkPHP schneidet im Allgemeinen besser ab als Laravel und konzentriert sich auf Optimierung und Caching. Laravel schneidet gut ab, aber für komplexe Anwendungen ist ThinkPHP möglicherweise besser geeignet.

So installieren Sie thinkphp So installieren Sie thinkphp Apr 09, 2024 pm 05:42 PM

ThinkPHP-Installationsschritte: Bereiten Sie PHP-, Composer- und MySQL-Umgebungen vor. Erstellen Sie Projekte mit Composer. Installieren Sie das ThinkPHP-Framework und die Abhängigkeiten. Datenbankverbindung konfigurieren. Anwendungscode generieren. Starten Sie die Anwendung und besuchen Sie http://localhost:8000.

Wie ist die Leistung von thinkphp? Wie ist die Leistung von thinkphp? Apr 09, 2024 pm 05:24 PM

ThinkPHP ist ein leistungsstarkes PHP-Framework mit Vorteilen wie Caching-Mechanismus, Codeoptimierung, Parallelverarbeitung und Datenbankoptimierung. Offizielle Leistungstests zeigen, dass es mehr als 10.000 Anfragen pro Sekunde verarbeiten kann und in großen Websites und Unternehmenssystemen wie JD.com und Ctrip in praktischen Anwendungen weit verbreitet ist.

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Nov 22, 2023 pm 05:18 PM

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Mit der kontinuierlichen Entwicklung des Internets ist die Bedeutung von API (Application Programming Interface) immer wichtiger geworden. Die API ist eine Brücke für die Kommunikation zwischen verschiedenen Anwendungen. Sie kann Datenaustausch, Funktionsaufrufe und andere Vorgänge realisieren und bietet Entwicklern eine relativ einfache und schnelle Entwicklungsmethode. Als hervorragendes PHP-Entwicklungsframework ist das ThinkPHP-Framework effizient, skalierbar und einfach zu verwenden.

See all articles