我在使用登录工具包时遇到问题。与此处提出的问题类似,我在 tiktok 设置中列出了正确的重定向域,并且redirect_uri 基本上只是“domain/tiktok”,但无论我做什么,我都会收到相同的错误消息:
下面是我的后端代码 - 它基本上与 tiktok 文档中列出的完全相同。任何对此的帮助将不胜感激!
const CLIENT_KEY = 'my_key'
const DOMAIN = 'dev.mydomain.com'
const csrfState = Math.random().toString(36).substring(2);
res.cookie('csrfState', csrfState, { maxAge: 60000 });
const redirect = encodeURIComponent(`https://${DOMAIN}/tiktok`)
let url = 'https://www.tiktok.com/auth/authorize/';
url += '?client_key=' + CLIENT_KEY;
url += '&scope=user.info.basic,video.list';
url += '&response_type=code';
url += '&redirect_uri=' + redirect;
url += '&state=' + csrfState;
res.redirect(url);
Run Code Online (Sandbox Code Playgroud)
更新 2022 年 8 月 13 日
我提交了该应用程序以供审核并获得批准,因此状态现在为“正在生产中”而不是“暂存”。问题仍然存在 - 无论我使用哪个域/回调 URL,仍然显示错误消息
更新 2022 年 8 月 16 日
好的,我在这方面取得了一些进展。 …
我正在查看新的TikTok网络登录工具包,但卡在了重定向步骤上。
与所有基于 oAuth 的服务类似,当您注册应用程序时,它们应该要求提供有效的重定向 URL。对于 TikTok,他们要求重定向域,如下所示:
然后,根据他们的官方文档,你只需要调用
我进入 TikTok 授权页面并确认,然后我收到以下错误,而不是重定向到https://testing.mydomain.com/signup/tiktok :
{"data":{"captcha":"","desc_url":"","description":"Illegal redirect link","error_code":10006},"message":"error"}
Run Code Online (Sandbox Code Playgroud)
测试了多次,还向重定向 URL ( https://testing.mydomain.com/signup/tiktok/ ) 添加了最后一个斜杠,以防万一这是必需的,但总是得到相同的错误。
还尝试使用生产域,以防他们检查是否可以从公共网络访问该域。
TikTok 为开发者提供了嵌入式 API,可以在其他网站上查看 TikTok。从文档中,他们提到了以下内容:
嵌入式视频具有自适应长宽比
我的假设是,当我更改嵌入视频容器的高度时,长度/宽度将适应它。然而,这对我来说效果不太好。设置包含嵌入代码的元素的大小500px没有任何作用,嵌入的 TikTok 视频会溢出,高度约为700px。更改块引用的高度.tiktok-embed会产生不同的效果:它确实会更改嵌入视频的 iframe 的大小,但内部内容不会尝试适应它,而是会被截断。我想设置一个小于默认高度的高度,并使视频适应我选择的尺寸。
我在codesandbox上有一个可重现的案例。如何制作才能将嵌入的高度更改为较小的高度而不会使嵌入被剪切?
这是我的极简TikTokApi Python 代码:
#!/usr/bin/env python3.7
#-*-coding:utf-8-*-
from TikTokApi import TikTokApi
import datetime
for tiktok in TikTokApi(use_selenium=True).byUsername('therock',count=10):
print(tiktok['id'])
print(tiktok['desc'])
print(datetime.datetime.fromtimestamp(tiktok['createTime']).strftime('%Y-%m-%d %H:%M:%S'))
Run Code Online (Sandbox Code Playgroud)
这是我运行它时遇到的错误:
TikTokApi.exceptions.TikTokCaptchaError: TikTok blocks this request displaying a Captcha
Tip: Consider using a proxy or a custom_verifyFp as method parameters
Run Code Online (Sandbox Code Playgroud)
正如“提示”中提到的,我也尝试过:
custom_verifyFp方法参数(基本上等于s_v_web_id我的 TikTok cookie 中存储的值)custom_verifyFp)...我仍然收到此验证码错误!
这里有什么想法吗?
去年,FontAwesome 中添加了 TikTok 图标(.fab .fa-tiktok),但当然,它是单色的。我想用 CSS 设计它的样式,以符合 TikTok 品牌指南。那就是浅蓝色和粉红色。
我尝试使用过滤器创建一个解决方案:但它剪掉了原始(黑色)字母。这是我到目前为止所得到的:
.fab .fa-tiktok {
color: #111111;
filter: drop-shadow(-5px -5px 0 #24f6f0) contrast(150%) brightness(110%);
z-index: -1;
}
.fab .fa-tiktok::after {
filter: drop-shadow(5px 5px 0 #F70250) contrast(150%) brightness(110%);
z-index: -1;
}
Run Code Online (Sandbox Code Playgroud)
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" />
<i class="fab fa-tiktok fa-2x"></i>
Run Code Online (Sandbox Code Playgroud) 我已经使用tiktok-scraper来获取任何公开的 TikTok 用户数据。它最近工作正常,我能够获得所需的数据,但突然停止工作并开始出现此错误:
Error: Can't extract user metadata from the HTML page. Make sure that the user does exist and try to use proxy
我使用的模块.getUserProfileInfo('USERNAME', options)没有使用任何options. 早些时候,我能够通过传递username.
有人建议尝试cookie "sessionid_ss"在sessionList选项中使用 ,但我不知道从哪里可以获得这个值。
如果有人可以在这方面进行指导以根据用户名获取任何公开的 TikTok 用户的详细信息,那就太好了。
我正在我的应用程序中使用 TikTok 实现社交登录,根据官方文档,我实现了基本设置并与我的 AppDelegate https://developers.tiktok.com/doc/getting-started-ios-quickstart-swift连接。使用示例代码实现了loginkit,但在我们从TikTok应用程序授权后,request.sendcompletionBlock没有得到任何响应或没有进入完成块。如果有人在 iOS 中实现了 tiktok 登录套件,请帮忙。
/* STEP 1 */
let scopes = "user.info.basic,video.list" // list your scopes
let scopesSet = NSOrderedSet(array:scopes)
let request = TikTokOpenSDKAuthRequest()
request.permissions = scopesSet
/* STEP 2 */
request.send(self, completion: { resp -> Void in
/* STEP 3 */
if resp.errCode == 0 {
/* STEP 3.a */
let clientKey = ... // you will receive this once you register in the Developer Portal
let responseCode = resp.code
// replace this …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此端点将视频上传到 Tiktok:
https://open-api.tiktok.com/share/video/upload/
遵循官方文档: https://developers.tiktok.com/doc/web-video-kit-with-web
(成功通过 Tiktok 进行身份验证并使用 Login Kit API 获取访问令牌后)。我收到的响应表明成功(error_code=0 和非空 share_id),但是没有上传任何内容,并且我的 Tiktok 应用程序的回调网址似乎没有被任何状态更新触发。
我尝试过从几个不同的环境访问 API - Node.js 运行时(使用 Axios)、来自 2 台不同机器的 cURL 请求(都得到上述结果)以及使用 Fetch 从我的前端代码(这个让我CORS 错误)。下面的代码片段。
我将不胜感激任何帮助,因为我不知道接下来要尝试什么。此外,如果除了我链接的文档或在线资源之外还有任何其他文档或在线资源可能会有所帮助,那么任何此类链接都会很棒。
注意:我确保我的测试视频满足文档中提到的限制。
我的 Node.js 代码:
const url = `https://open-api.tiktok.com/share/video/upload?open_id=${openId}&access_token=${accessToken}`;
const data = new FormData();
data.append('video', fs.createReadStream(path.join(os.tmpdir(), 'test.mp4')));
await axios.post(url, data, {
headers: data.getHeaders()
});
Run Code Online (Sandbox Code Playgroud)
卷曲请求:
curl --location --request POST 'https://open-api.tiktok.com/share/video/upload?open_id=<open_id>&access_token=<access_token>' --form 'video=@"/path/to/video.mp4"'
Run Code Online (Sandbox Code Playgroud)
响应负载(对于 cURL 和 Node.JS 请求):
{"data":{"err_code":0,"error_code":0,"share_id":"video.7031619168818448385.CGdXCmaC"},"extra":{"error_detail":"","logid":"2021111721133201024513311411A971D3"}}
Run Code Online (Sandbox Code Playgroud)
前端代码(获取,在 Location 标头中使用相同的 Tiktok URL(/share/video/upload...)获取 307 响应 - 导致 CORS 错误):
const formData …Run Code Online (Sandbox Code Playgroud) 我正在使用 TikTok 的官方 SDK ( https://developers.tiktok.com/doc/video-kit-ios-video-kit-with-swift ) 将我的应用中的视频分享到 TikTok。我使用的方法如下所示:
func openVideoShareMenu(fileUri: String) {
let request = TikTokOpenSDKShareRequest()
request.mediaType = TikTokOpenSDKShareMediaType.video
var mediaLocalIdentifiers: [String] = []
mediaLocalIdentifiers.append(fileUri)
request.localIdentifiers = mediaLocalIdentifiers
DispatchQueue.main.async {
request.send(completionBlock: { response in
print("Response from TikTok")
})
}
}
Run Code Online (Sandbox Code Playgroud)
该字符串fileUri指向一个现有文件,如下所示/var/mobile/Containers/Data/Application/83EB0771-25A6-43A5-9F9F-B859D21DB795/Documents/exportvideo.mp4。执行此方法时发生的唯一事情是 TikTok 应用程序打开,显示加载动画,然后立即返回到我的应用程序。在日志中我可以看到以下输出:
realnote_app[25056:2173434] 8.8.0 - [Firebase/Analytics][I-ACS023001] Deep Link does not contain valid required params. URL params: {
"error_code" = "-4";
"error_string" = "Permissions denied";
"from_platform" = tiktoksharesdk;
"request_id" = "3BEA07B3-19EF-46F1-90B2-8E112748CEA8";
"response_id" = "51CEF72B-D265-449C-929B-372F2401AA7C";
"share_state" …Run Code Online (Sandbox Code Playgroud) 我目前正在使用下面的脚本上传 tiktok 视频,但是在运行该脚本时,我收到错误消息“尝试次数过多。请稍后再试。” 无论我使用哪种登录方法,旋转标题似乎都无法修复错误。有什么建议吗?
import time
import random
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager as CM
import undetected_chromedriver.v2 as uc
import undetected_chromedriver as uc
print('=====================================================================================================')
print('Heyy, you have to login manully on tiktok, so the bot will wait you 1 minute for loging in manually!')
print('=====================================================================================================')
time.sleep(8)
print('Running bot now, …Run Code Online (Sandbox Code Playgroud)