抖音小程 服务端OpenAPI 开发示例

开发流程如下图
在这里插入图片描述
为方便开发 我用的是沙盒模式
在这里插入图片描述
开放平台前三个接口开发流程如下,我的代码没做相关优化
在这里插入图片描述
代码如下

1、 接口调用凭证

 //接口调用凭证public function getAccessToken(){$uri = 'https://open-sandbox.douyin.com/api/apps/v2/token';$options = ['body' => json_encode(['appid' => 'tt5d842b39c2bb31','secret' => '9208a4e3130eb24cf9fcbc4a4906765c1','grant_type' => 'client_credential']),'headers' => ['Content-Type' => 'application/json']];$response = (new \GuzzleHttp\Client)->post($uri, $options);$body = $response->getBody();$stringBody = (string)$body;$result = json_decode($stringBody, true);if ($result['err_no'] == 0) {return $result['data']['access_token'];}return null;}

2、登录 (通过小程序login接口获取到登录凭证后,开发者可以通过服务器发送请求的方式获取 session_key 和 openId)。
在这里插入图片描述

//通过小程序login接口获取到登录凭证后,开发者可以通过服务器发送请求的方式获取 session_key 和 openId。public function code2Session(){$uri = 'https://open-sandbox.douyin.com/api/apps/v2/jscode2session';//客户端获取并传过来$code = 'T9loKB1gsyl92x5s7wiTwKteJgeA5Pjq21JNWPtXfx1BUXz0PIzl2ruw2fnPjc9VDA97LlXkKvQW6qTM-0jUNN-frfnVZ5nBluYdVos3FJw8mGe0iaHJHkXq7i4';$options = ['body' => json_encode(['appid' => 'tt5d842b39c2b6','secret' => '9208a4e3130eb2408fcf9fcbc4a496','code' => $code]),'headers' => ['Content-Type' => 'application/json']];$response = (new \GuzzleHttp\Client)->post($uri, $options);$body = $response->getBody();$stringBody = (string)$body;$result = json_decode($stringBody, true);if ($result['err_no'] == 0) {return $result['data'];}return ['openid' => '_000DO0RDLCqmW1_EcB4GXidO-bl8T', 'session_key' => ''];}

3、数据缓存

//数据缓存
public function setUserstorage(){$user = $this->code2Session();$body = ['kv_list' => [['key' => 'name', 'value' => 'yang']]];//用户登录态签名$signature = hash_hmac('sha256', json_encode($body), $user['session_key']);$uri = 'https://open-sandbox.douyin.com/api/apps/set_user_storage';$response = (new \GuzzleHttp\Client)->post($uri, ['query' => ['access_token' => $this->getAccessToken(),'openid' => $user['openid'],'signature' => $signature,'sig_method' => 'hmac_sha256',],'body' => json_encode($body),'headers' => ['Content-Type' => 'application/json']]);$body = $response->getBody();$stringBody = (string)$body;$result = json_decode($stringBody, true);dd($result);}

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部