Flutter TikTok API集成插件idn_tiktok_api的使用

Flutter TikTok API集成插件idn_tiktok_api的使用

idn_tiktok_api项目开发了开源的Flutter插件库,用于与Tiktok的API进行集成。该项目提供了更简便的方法来集成Tiktok,因为我们发现遵循Tiktok的文档和支持可能不会奏效。

特性

  • 支持Android集成
  • 支持iOS集成

要求

  • Flutter版本 3.x.x
  • Dart版本 3.x.x
  • 需要一个web服务器来存储App Link(Android)配置文件
  • 需要一个web服务器来存储Universal Link(iOS)配置文件
  • 需要一个后端服务器来交换Tiktok的授权码(登录成功后)与Tiktok的访问令牌

开发状态

此项目仍在开发中。

示例

您可以在example文件夹中查看如何使用此插件库的示例代码。

入门指南

  1. Tiktok开发者网站上创建一个应用。
  2. 添加Login Kit产品,并为Android配置Login Kit。同时为iOS配置Login Kit。如果您遇到重定向URI错误,可以尝试在Login Kit的重定向URI末尾添加斜杠,如https://www.abc.com/login-callback/
  3. 为Android配置App Link(您可以使用uni_links包),并测试App Link是否正常工作。
  4. 为iOS配置Universal Link(您可以使用uni_links包),并测试Universal Link是否正常工作。
  5. 配置您的Tiktok应用的范围。您可以从user.info.basic开始。
  6. 提交您的应用并确保其状态为Live in Production
  7. 安装此插件包flutter pub add tiktok_api
  8. 调用setup()方法并传递您的Tiktok应用客户端密钥:_tiktokSDKApi.setup('<API_KEY>')
  9. 调用login()方法并传递作用域:_tiktokSDKApi.login(['user.info.basi'], 'https://www.abc.com/login-callback/', browserAuthEnabled)
  10. 一旦用户授权您的Tiktok应用,Tiktok Login Kit将通过App Link(Android)或Universal Link(iOS)重定向回您的应用。您需要处理App Link或Universal Link的重定向(如步骤3所示),并检索授权码。您必须使用该授权码换取访问令牌。一旦获得访问令牌,您可以使用它调用所有Tiktok的API。交换过程必须在后端进行。您可以遵循Tiktok的文档获取访问令牌此处

代码示例

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:idn_tiktok_api/idn_tiktok_api.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _tiktokApiPlugin = TiktokApi();

  [@override](/user/override)
  void initState() {
    super.initState();

    /// 步骤1. 调用setup并传递客户端密钥(仅适用于Android)
    _tiktokApiPlugin.setup('<YOUR_TIKTOK_APP_CLIENT_KEY>');
  }

  // 平台消息异步初始化
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: TextButton(
            child: const Text('登录到Tiktok'),
            onPressed: () async {
              /// 步骤2. 调用login并传递作用域和重定向URI
              final result = await _tiktokApiPlugin.login(['user.info.basic'], '<YOUR_TIKTOK_APP_REDIRECT_URI>', true);

              /// 步骤3. 存储codeVerifier,我们稍后需要它来获取访问令牌
              final codeVerifier = result.codeVerifier!;

              /// 步骤4. Tiktok将重定向到您的应用重定向URI,您可以从查询字符串中检索代码。
              /// 您必须使用App Link或Universal Link以确保操作系统可以重定向到您的应用。
              /// 下面是一个使用uni_link包的示例
              /*
              if(link.startsWith('<REDIRECT_URI>')){
                final authCode = link.replaceAll("<REDIRECT_URI>?code=", "");

                /// 一旦我们得到authCode,我们可以将其兑换为访问令牌
                /// 了解更多详情:https://developers.tiktok.com/doc/oauth-user-access-token-management
                
              } 
              */

            },
          ),
        ),
      ),
    );
  }
}

更多关于Flutter TikTok API集成插件idn_tiktok_api的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter TikTok API集成插件idn_tiktok_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


idn_tiktok_api 是一个用于在 Flutter 应用中集成 TikTok API 的插件。它允许开发者通过 TikTok 的 API 获取用户信息、视频数据等。以下是如何在 Flutter 项目中使用 idn_tiktok_api 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 idn_tiktok_api 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  idn_tiktok_api: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化 TikTok API

在你的 Dart 文件中导入 idn_tiktok_api 并初始化 TikTok API。

import 'package:idn_tiktok_api/idn_tiktok_api.dart';

void main() {
  TikTokApi.initialize(
    clientKey: 'YOUR_CLIENT_KEY',
    clientSecret: 'YOUR_CLIENT_SECRET',
    redirectUri: 'YOUR_REDIRECT_URI',
  );
}

3. 用户授权

为了访问 TikTok 的用户数据,你需要引导用户进行授权。你可以使用 TikTokApi.login() 方法来启动授权流程。

void login() async {
  try {
    final authResult = await TikTokApi.login();
    print('Access Token: ${authResult.accessToken}');
  } catch (e) {
    print('Error during login: $e');
  }
}

4. 获取用户信息

一旦用户授权成功,你可以使用 TikTokApi.getUserInfo() 方法来获取用户的基本信息。

void getUserInfo() async {
  try {
    final userInfo = await TikTokApi.getUserInfo();
    print('User Info: $userInfo');
  } catch (e) {
    print('Error fetching user info: $e');
  }
}

5. 获取用户视频

你可以使用 TikTokApi.getUserVideos() 方法来获取用户发布的视频列表。

void getUserVideos() async {
  try {
    final videos = await TikTokApi.getUserVideos();
    print('User Videos: $videos');
  } catch (e) {
    print('Error fetching user videos: $e');
  }
}

6. 处理错误

在使用 TikTok API 时,可能会遇到各种错误。你可以使用 try-catch 块来捕获并处理这些错误。

void fetchData() async {
  try {
    final userInfo = await TikTokApi.getUserInfo();
    print('User Info: $userInfo');
  } catch (e) {
    print('Error: $e');
  }
}

7. 注销用户

你可以使用 TikTokApi.logout() 方法来注销当前用户。

void logout() async {
  await TikTokApi.logout();
  print('User logged out');
}

8. 处理回调

在 Android 和 iOS 上,你需要在 AndroidManifest.xmlInfo.plist 中配置回调 URL,以确保授权流程能够正确完成。

Android:

AndroidManifest.xml 中添加以下内容:

<activity android:name="com.tiktok.sdk.TikTokEntryActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="YOUR_REDIRECT_URI_SCHEME" />
    </intent-filter>
</activity>

iOS:

Info.plist 中添加以下内容:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>YOUR_REDIRECT_URI_SCHEME</string>
        </array>
    </dict>
</array>
回到顶部