- 字节跳动小程序第三方接入文档
- 该demo为ByteDanceOpen SDK用法示例. 大部分参数和url跟字节跳动open api保持相同, 方便对照文档快速理解使用, 剩余的按照RESTful命名风格
- 提供了docker启动方式,包含redis和ngrok服务
- 当前页面上的图片如果裂了,可以尝试修改host,如果还不行那么就需要科学上网o( ̄ヘ ̄o#),或者clone后查看images/gifs文件夹下对应的图片
- 如果觉得用起来还不错╰(●’◡’●)╮,希望能够star🌟支持一下~~~
- 如果有接口没有及时更新,可以给我提issue或者PR,着急的话也可以通过sdk暴露的接口自己实现(详情见下面的其他注意事项)。
- 先在字节跳动小程序管理后台注册一个账号。
- 字节跳动小程序管理后台账号自带一个字节跳动第三方平台账号(登录小程序管理后台后,进入第三方平台直接就是登录状态),创建一个第三平台后,将第三方平台的相关数据填入
application-dev.yml
cd /yourpath/bytedance-open-demo
mvn clean install -DskipTests
docker-compose up --build
curl $(docker port bytedance-open-demo_ngrok_1 4040)/api/tunnels
两种方式都可以从public_url中找到所需的外网地址
- 使用从上一步获取的外网地址, 去字节跳动第三方平台配置以下信息:
-
access_token
等数据都是保存在redis中,所以需要一个redis服务 -
为了方便使用,项目中提供了一个默认的
redis.conf
, 位于docker/redis/redis.conf
, 只修改了两个配置:# 把protected-mode改为了no protected-mode no # 注释了bind # bind 127.0.0.1 ::1
-
本项目使用的redis客户端是redisson,可以直接使用。如果想修改redis连接相关配置,可以在
application-dev.yml
指定redis的配置文件。 -
如果想要使用jedis,可以自己实现一个
IByteDanceRedisOps
- 如果没有公网地址,那么需要使用内网穿透工具。比如ngrok
- 如果使用ngrok,下载好后,根据不同的操作系统,在命令行执行
就能得到一个映射到8080端口(项目默认启动端口)的外网地址。
# MacOS ngrok http 8080 # Windows ngrok.exe http 8080
- 启动项目后需要等待字节跳动服务器将ticket推送过来后(一般10分钟以内),才能进行后续的授权等api调用。如果一直没有推送,请到字节跳动第三方平台,选择自己创建的第三方平台确认推送地址是否配置正确
-
请确定ticket已经推送过来了。如果ticket推送过来,日志中会打印"MsgTypeTicketHandler 开始处理消息: xxxx"
-
先去字节跳动小程序管理后台创建一个小程序
-
然后去字节跳动第三方平台将刚才创建的小程序的appid添加到【授权测试小程序列表】,以便测试
-
浏览器中输入授权地址: https://你的公网地址或者ngrok生成的公网地址/bytedance/v1/auth/goto_auth_url_show
-
- 可以在
EventHandlerConfiguration
配置用于处理相应事件的handler
bytedance:
open:
componentAppId: ""
componentSecret: ""
componentToken: ""
componentAesKey: ""
- 将刚才授权的小程序appid配置到
src/test/resources/application-unittest.yml
中的
test-app-info:
appid: ""
- 运行单元测试
- 加解密异常 java.security.InvalidKeyException: Illegal key size
- 因为秘钥长度超过128位,在某些jdk版本中默认只支持128位以下的秘钥
- 解决方案为使用无限制的策略文件替换 $JAVA_HOME\jre\lib\security 下的策略文件
- 下载地址
- 目前字节跳动的字节跳动开放平台文档还在不断更新,我也会根据他的更新不断新增接口。如果有接口没有及时更新,可以给我提issue或者PR,着急的话也可以通过sdk暴露的接口自己实现。