目录

需求说明:

研究分析:

问题解决:

如何获取用户id:

2024-06-21更新:获取自己的userId方法

1、点击抖音左上角的3道杠图标。

2、点击设置按钮。

3、设置页面滑动到最下方,单击抖音版本号5次

4、单击想要复制的信息,如userId,会自动复制。


需求说明:

最近在开发抖音内嵌H5页面,需要上传抖音视频,其实上传主要是通过后端封装抖音提供的openapi接口来实现。

但是产品突然提了一个需求,说能不能上传成功后跳转到抖音其他页面呢?

于是我翻遍了官方提供的js桥文档,但是官方文档里面根本没有相关的js桥和跳转方法

于是使出了程序员的三连:做不了,实现不了,没有这个功能。

结果产品发来一个二维码,抖音扫码进去后是某商户的推广H5,功能大概是授权后上传素材视频,但最后它上传成功后居然跳转到了抖音的商户页面

 啪啪打脸。

 于是开始研究,它到底是如何实现的呢 ?

研究分析:

解析烧烤店的二维码,拿到了一个网址:

https://open.douyin.com/platform/oauth/connect?client_key=awqorh8xwmvkjsye&response_type=code&scope=user_info,video.create,video.data,item.comment,mobile_alert&redirect_uri=https://dy.fznanjing.com/api/business/douyin/cb&state=1457917313025482753

打开网址,使用抖音扫码授权后,发现它居然可以成功在PC网页上运行!

于是便想看看,能否正常发布,结果发现能够成功发布!

并且,发布完之后,页面白屏,报错提示:

faild to launch 'snssdk1128://user/profile/99886282085?gd_label=click_wap_profile_bottom&needlaunchlog=1&refer=web&scene_from=share_reflow&type=need_follow&zlink=https://z.douyin.com/Mfen&zlink_click_time=1636767075' because the scheme does not have a registered handler.

这个报错很眼熟,并且其中的一个关键字scheme引起了我的注意。

以前开发app下载功能的时候,有个url scheme,ios内可以通过浏览器跳转到苹果的app store中进行app下载。

于是经过一番搜索,了解到这个url scheme其实能够打开任意app的任意页面,只要你知道对应的url scheme。

问题解决:

既然如此,那么报错信息里的那一串地址:'snssdk1128://user/profile/99886282085?gd_label=click_wap_profile_bottom&needlaunchlog=1&refer=web&scene_from=share_reflow&type=need_follow&zlink=https://z.douyin.com/Mfen&zlink_click_time=1636767075',很可能就是抖音商户页面的url scheme

?以后的应该是类似于链接地址上的查询字符串,应该可以去掉。

?前面的那串99886282085,很可能是抖音用于标识商户的唯一id之类的东西。

因此只要我们知道了这个商户id,就可以跳转到任意一个抖音商户页面。

为了验证我的猜想,于是我在项目中上传视频成功后,增加了一个跳转:


window.location.href = 'snssdk1128://user/profile/99886282085'

上线验证后,发现果然能够成功跳转到商户页面!

如何获取用户id:

那么如何获取用户id呢?

根据网上的方法,分享用户页面的短链,然后在浏览器中打开,但是却无法找到用户id。

原来是因为抖音可能为了避免用户id滥用,把用户id给加密了。。。

GG,无法得知抖音加密的具体方法。

不知道是否有其他的方式获取抖音用户id

希望看到的大神能够赐教。


2024-06-21更新:获取自己的userId方法

发现这篇文章看的人还挺多的,感觉还是得补完比较好。

查看了一下,现在可以很容易的获取本人账号的userId,方法如下:

1、点击抖音左上角的3道杠图标。

2、点击设置按钮。

3、设置页面滑动到最下方,单击抖音版本号5次

4、单击想要复制的信息,如userId,会自动复制。

至此,整个流程完整。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐