• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Thinkphp集成抖音SDK的实现方法

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

    第一步:下载抖音官方SDK

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

    第二步:将SDK导入

    1.解压下载的压缩文件

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

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

    复制完成后目录结构如下

    第三步:安装guzzlehttp依赖

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

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

    第四步:接口调用

    接口调用可参考下载的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/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle.crt
    在php.ini的末尾加入 ,

    curl.cainfo="真实路径/ca-bundle.crt"
    

    重启web服务器

    二、提示配置无效

    调用授权登录接口https://open.douyin.com/platform/oauth/connect?client_key=xxxresponse_type=codescope=user_inforedirect_uri=redirect_uristate=1提示授权失败或配置失效

    问题原因

    申请的应用为移动应用,实际调用为网页应用web扫码,网页应用在申请的时候有个授权域回调的配置,就是填写回调域名的

    解决方案

    重新申请网页应用,需要填写这个回调地址

    三、获取用户信息报Invalid value for ‘e_account_role', must be one of ‘EAccountM', ‘EAccountS', ‘EAccountK'

    调用UserInfoApioauthUserinfoGetWithHttpInfo接口出现该错误

    问题原因

    由于返回用户信息里的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的实现方法的文章就介绍到这了,更多相关Thinkphp集成抖音SDK内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 微信sdk实现禁止微信分享(使用原生php实现)
    • PHP如何实现阿里云短信sdk灵活应用在项目中的方法
    • PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK)流程教程详解
    • thinkPHP微信分享接口JSSDK用法实例
    • thinkPHP简单导入和使用阿里云OSSsdk的方法
    • php一个文件搞定微信jssdk配置
    • PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
    • 微信支付PHP SDK之微信公众号支付代码详解
    • 微信公众平台开发接口PHP SDK完整版
    • PHP sdk实现在线打包代码示例
    上一篇:PHP扩展类型及安装方式解析
    下一篇:Yii使用EasyWechat实现小程序获取用户的openID的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Thinkphp集成抖音SDK的实现方法 Thinkphp,集成,抖音,SDK,的,