Thinkphp가 Douyin SDK를 통합하는 방법 이해
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/202008/14/2020081416430198815.jpg" class="lazy" alt="Thinkphp가 Douyin SDK를 통합하는 방법 이해" >
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/202008/14/2020081416430198815.jpg" class="lazy" alt="Thinkphp가 Douyin SDK를 통합하는 방법 이해" >
由于抖音官方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='') { //创建默认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/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle.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
Douyin 공식 SDK 관련 튜토리얼은 너무 적기 때문에 선인들이 미래 세대가 그늘을 즐길 수 있도록 나무를 심었다는 정신으로 이 블로그를 작성합니다
1단계: Douyin 공식 SDK 다운로드
span>🎜🎜다운로드 주소: Douyin SDK 공식 다운로드다운로드하려면
PHP 다운로드 주소
를 선택하세요🎜
🎜
🎜관련 학습 권장사항: thinkphp🎜🎜2단계 : SDK를 가져옵니다🎜🎜🎜1. 다운로드한 압축 파일의 압축을 푼다🎜🎜2. thinkphp 프로젝트 루트 디렉터리 아래의
🎜
extend
디렉터리에 새 를 생성합니다. 응용 프로그램 디렉터리와 동일한 수준) >Douyin
디렉터리를 만든 다음 Douyin
디렉터리에 새 Open
디렉터리를 만듭니다.🎜
🎜🎜3. 이동 압축이 풀린 php-sdk/douyin_open/lib 디렉토리 내부의 모든 파일과 폴더를 새로 생성된
DouyinOpen
디렉토리에 복사하세요.
🎜
🎜
복사 후 완료되면 디렉토리 구조는 다음과 같습니다
🎜
🎜
🎜3단계: guzzlehttp 종속성 설치🎜🎜🎜 Douyin의 SDK는 기본적으로 Request sent by guzzlehttp
를 기반으로 하기 때문에 종속성을 설치해야 합니다🎜🎜Composer를 설치하지 않은 경우 <code>Composer
를 사용하여 설치합니다. 먼저 설치해주세요🎜
- 1.
composer require guzzlehttp/guzzle:~6.0
명령을 실행하세요. - 2. , 인터페이스를 호출할 수 있습니다
$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/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle.crt
php.ini 끝에 추가하세요. 🎜rrreee🎜웹 서버를 다시 시작하세요. 🎜🎜2 구성이 유효하지 않다는 메시지를 표시하세요. 🎜🎜인증 로그인 인터페이스를 호출하세요. https://open.douyin.com/platform/oauth/connect?client_key=xxx&response_type=code&scope=user_info&redirect_uri=redirect_uri&state=1 인증 실패 메시지 또는 구성이 유효하지 않습니다🎜
🎜🎜🎜문제 원인🎜🎜🎜 신청한 애플리케이션은
모바일 애플리케이션
이지만 실제 호출은 웹 애플리케이션
웹 스캔 코드입니다. 신청 시 도메인 콜백 구성을 입력해야 합니다. 콜백 도메인 이름
🎜
🎜🎜🎜Solution🎜🎜🎜웹 애플리케이션을 다시 신청하려면 이 콜백 주소를 입력해야 합니다.
🎜
🎜🎜3. 사용자 정보를 얻고 'e_account_role'에 대한 잘못된 값을 보고합니다. 'EAccountM', 'EAccountS', 'EAccountK' 중 하나🎜🎜이 오류는 UserInfoApi
🎜🎜🎜문제 원인🎜🎜🎜Due의 oauthUserinfoGetWithHttpInfo
인터페이스를 호출할 때 발생합니다. 사용자 정보의 e_account_role
필드가 null인데, 이는 API를 수정하면 해결될 수 있습니다. 이 오류는 일반적으로 모바일 애플리케이션의 client_key를 강제로 사용하는 등 비정상적인 API 호출로 인해 발생합니다. 🎜🎜🎜 솔루션 🎜🎜
반환된 사용자 정보의 e_account_role
필드가 null이므로 API를 수정하면 해결될 수 있습니다. e_account_role
字段为null所导致,可通过修改API解决
根据TP的错误提示我们可以发下报错发生在DouyinOpenModelOauthUserinfoResponseData.php line 564
错误发生在第564行代码
将563 - 570行注释掉即可获取正常用户信息
修改前:
修改后:
TP의 오류 메시지에 따라 DouyinOpenModelOauthUserinfoResponseData.php 564행564행
에서 오류가 발생했습니다
일반 사용자 정보를 얻으려면 563~570행을 주석 처리하세요
수정 전:
🎜🎜🎜🎜🎜관련 학습 권장 사항: 🎜프로그래밍 비디오🎜🎜🎜
이후 수정:
위 내용은 Thinkphp가 Douyin SDK를 통합하는 방법 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











ThinkPHP 프로젝트를 실행하려면 다음이 필요합니다: Composer를 설치하고, 프로젝트 디렉터리를 입력하고 php bin/console을 실행하고, 시작 페이지를 보려면 http://localhost:8000을 방문하세요.

ThinkPHP에는 다양한 PHP 버전용으로 설계된 여러 버전이 있습니다. 메이저 버전에는 3.2, 5.0, 5.1, 6.0이 포함되며, 마이너 버전은 버그를 수정하고 새로운 기능을 제공하는 데 사용됩니다. 최신 안정 버전은 ThinkPHP 6.0.16입니다. 버전을 선택할 때 PHP 버전, 기능 요구 사항 및 커뮤니티 지원을 고려하십시오. 최상의 성능과 지원을 위해서는 최신 안정 버전을 사용하는 것이 좋습니다.

ThinkPHP Framework를 로컬에서 실행하는 단계: ThinkPHP Framework를 로컬 디렉터리에 다운로드하고 압축을 풉니다. ThinkPHP 루트 디렉터리를 가리키는 가상 호스트(선택 사항)를 만듭니다. 데이터베이스 연결 매개변수를 구성합니다. 웹 서버를 시작합니다. ThinkPHP 애플리케이션을 초기화합니다. ThinkPHP 애플리케이션 URL에 접속하여 실행하세요.

Laravel과 ThinkPHP 프레임워크의 성능 비교: ThinkPHP는 일반적으로 최적화 및 캐싱에 중점을 두고 Laravel보다 성능이 좋습니다. Laravel은 잘 작동하지만 복잡한 애플리케이션의 경우 ThinkPHP가 더 적합할 수 있습니다.

ThinkPHP 설치 단계: PHP, Composer 및 MySQL 환경을 준비합니다. Composer를 사용하여 프로젝트를 만듭니다. ThinkPHP 프레임워크와 종속성을 설치합니다. 데이터베이스 연결을 구성합니다. 애플리케이션 코드를 생성합니다. 애플리케이션을 실행하고 http://localhost:8000을 방문하세요.

"개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법" 인터넷 기술의 급속한 발전으로 인해 웹 응용 프로그램은 많은 수의 동시 요청과 복잡한 비즈니스 논리를 처리하기 위한 요구 사항이 점점 더 높아졌습니다. 시스템 성능과 사용자 경험을 향상시키기 위해 개발자는 이메일 보내기, 파일 업로드 처리, 보고서 생성 등과 같이 시간이 많이 걸리는 작업을 수행하기 위해 비동기 작업을 사용하는 것을 종종 고려합니다. PHP 분야에서 널리 사용되는 개발 프레임워크인 ThinkPHP 프레임워크는 비동기 작업을 구현하는 몇 가지 편리한 방법을 제공합니다.

ThinkPHP는 캐싱 메커니즘, 코드 최적화, 병렬 처리 및 데이터베이스 최적화와 같은 장점을 갖춘 고성능 PHP 프레임워크입니다. 공식 성능 테스트에 따르면 초당 10,000개 이상의 요청을 처리할 수 있으며 JD.com, Ctrip과 같은 대규모 웹 사이트 및 엔터프라이즈 시스템에서 실제 응용 프로그램으로 널리 사용됩니다.

ThinkPHP6 및 Swoole을 기반으로 한 RPC 서비스는 파일 전송 기능을 구현합니다. 소개: 인터넷이 발전하면서 일상 업무에서 파일 전송이 점점 더 중요해졌습니다. 본 글에서는 파일 전송의 효율성과 보안성을 향상시키기 위해 ThinkPHP6와 Swoole을 기반으로 한 RPC 서비스 기반의 파일 전송 기능의 구체적인 구현 방법을 소개하겠습니다. 우리는 ThinkPHP6을 웹 프레임워크로 사용하고 Swoole의 RPC 기능을 활용하여 서버 간 파일 전송을 달성할 것입니다. 1. 환경기준
