【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
开发背景
在某软件交易平台看到有甲方提出这样的要求,于是说明这个东西有人关注,本系列文卓伊凡就做做试验,内容仅供学习试验提升研发技术,禁止用于任何商业用途,任何法律后果自负。
实战开发
首先我们思路为下
为了用Python实现这个功能,我们需要按照以下思路进行:
- 了解抖音API的使用规则和权限:首先你需要查阅抖音的开发者文档,了解获取用户评论、用户名和UID的具体API端点。
- 获取视频评论信息:通过抖音API获取某个视频下方的所有评论,包括评论用户的用户名和UID。
- 获取用户详细信息:通过抖音API,使用UID查询用户的详细信息。如果API允许并且你拥有相应权限,可以获取用户的手机号。
- 处理和展示数据:将获取到的数据存储并进行适当处理,以便展示或进一步分析。
以下是一个示范代码,展示了如何通过API获取视频评论:
python
import requests def get_video_comments(video_id, api_key): url = f"https://api.douyin.com/video/comments?video_id={video_id}&api_key={api_key}" response = requests.get(url) if response.status_code == 200: return response.json() else: return None def main(): video_id = "example_video_id" api_key = "your_api_key" comments = get_video_comments(video_id, api_key) if comments: for comment in comments['data']: username = comment['user']['nickname'] uid = comment['user']['uid'] print(f"Username: {username}, UID: {uid}") else: print("Failed to retrieve comments") if __name__ == "__main__": main()
注意事项:
- 权限和隐私:获取用户的私人信息(如手机号)需要遵守抖音的隐私政策和相关法律法规,确保你拥有相应的权限。
- 数据处理:存储和处理数据时要确保其安全性和隐私性。
那么在第一步,了解抖音API的使用规则和权限:首先你需要查阅抖音的开发者文档,了解获取用户评论、用户名和UID的具体API端点。
根据卓伊凡在官网得到的信息如下
抖音开放的api信息我们可以了解到
- 申请权限:在抖音开放平台控制台中,需要申请“获取用户手机号”权限获取用户手机号移动网站应用抖音开放平台。
- 用户授权:用户需要授权开发者获取其手机号信息网站应用抖音开放平台。
- 获取手机号:通过API获取用户的加密手机号信息,并使用AES算法解密抖音开放平台。
也就是这部分
该接口在用户公开信息的基础上,额外获取用户的手机号。
•Scope: mobile_alert
•需要申请权限。路径:抖音开放平台控制台 > 应用详情 > 能力管理 > 用户权限 > 获取用户手机号
接口说明
前提条件
请先获取用户公开信息,才能获取用户手机号。
注意事项
•用户授权后,获取用户公开信息接口会额外返回 encrypt_mobile 字段。
•解密手机号,使用 AES 算法解密,密钥是 client_secret, 向量 lv 是 client_secret 前 16 字节。
•通过辅助手机号绑定的信息不会返回。
示例解密代码
•Java
import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.IvParameterSpec; import java.util.Base64; import java.util.Arrays; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; import javax.crypto.NoSuchPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.BadPaddingException; public class DecryptMobile{ public static String decrypt(String algorithm, String cipherText, SecretKey key,IvParameterSpec iv) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance(algorithm); cipher.init(Cipher.DECRYPT_MODE, key, iv); byte[] plainText = cipher.doFinal(Base64.getDecoder().decode(cipherText)); return new String(plainText); } public static void main(String []args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { String clientSecret = "0123456789abcdef0123456789abcdef"; String encryptedMobile = "tyUWQwYuUmVFJtElAL+D7Q=="; byte[] clientSecretBytes = clientSecret.getBytes(); SecretKey secretKey = new SecretKeySpec(clientSecretBytes, 0, clientSecretBytes.length, "AES"); byte[] iv = Arrays.copyOfRange(clientSecretBytes, 0, 16); IvParameterSpec ivParameterSpec = new IvParameterSpec(iv); String algorithm = "AES/CBC/PKCS5Padding"; String mobile = decrypt(algorithm, encryptedMobile, secretKey, ivParameterSpec); System.out.println(mobile); } }
此处是java的实例,
这个过程确保了用户的隐私和安全。可以参考抖音开放平台的官方文档获取详细的使用方法和示例代码移动/网站应用抖音开放平台。
请注意,获取用户的手机号信息需要严格遵守隐私法规和平台的使用条款。确保你的应用符合相关法律法规,并且用户已经明确授权。
那么综上所述我们第一步应该是获取 授权信息
URL是浏览器直接访问的前端页面,而并非OpenAPI接口。只适用于抖音获取授权临时票据(code),访问该 URL会跳转到开放平台提供的授权扫码页,用户扫码即可授权。
打开该 URL 后,页面会出现一个二维码,用户扫描该二维码即可授权。在抖音 App 支持端内唤醒的版本内打开的话会弹出客户端原生授权页面。
接口说明
前提条件
•需要去官网为应用申请 scope 的使用权限。
•需要在本接口的 scope 传参中填上需要用户授权的 scope,多个 scope 以逗号分割。
•用户授权通过后,应用有权限通过 access_token 调用相应接口。
注意事项
•获取的 code 可以用来调用 https://open.douyin.com/oauth/access_token/
换取用户 acccess_token。