{"id":17350321,"url":"https://github.com/rnheroes/tiktok-opensdk-react-native","last_synced_at":"2026-02-26T18:15:54.542Z","repository":{"id":257792711,"uuid":"861647137","full_name":"rnheroes/tiktok-opensdk-react-native","owner":"rnheroes","description":"Unofficial TikTok OpenSDK features Share Kit which allow your users to share content from your app to TikTok.","archived":false,"fork":false,"pushed_at":"2025-01-23T13:22:40.000Z","size":1480,"stargazers_count":25,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T09:01:42.751Z","etag":null,"topics":["react-native","tiktok","tiktok-sdk"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rnheroes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-23T09:25:36.000Z","updated_at":"2025-03-27T23:02:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"87ded1fe-6592-4aaa-ad7e-f0f5e6568f1a","html_url":"https://github.com/rnheroes/tiktok-opensdk-react-native","commit_stats":null,"previous_names":["rnheroes/tiktok-opensdk-react-native"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnheroes%2Ftiktok-opensdk-react-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnheroes%2Ftiktok-opensdk-react-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnheroes%2Ftiktok-opensdk-react-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnheroes%2Ftiktok-opensdk-react-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rnheroes","download_url":"https://codeload.github.com/rnheroes/tiktok-opensdk-react-native/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248955460,"owners_count":21189115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["react-native","tiktok","tiktok-sdk"],"created_at":"2024-10-15T17:06:30.833Z","updated_at":"2026-02-26T18:15:54.461Z","avatar_url":"https://github.com/rnheroes.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TikTok OpenSDK React Native\n\nThis package provides a React Native wrapper for the TikTok OpenSDK, allowing you to integrate TikTok sharing functionality into your React Native applications.\n\n## Installation\n\n```bash\nnpm install tiktok-opensdk-react-native\n# or\nyarn add tiktok-opensdk-react-native\n````\n\n## Usage\n\n```javascript\nimport TikTokOpenSDK from 'tiktok-opensdk-react-native';\n\n// ...\n\ntry {\n  const result = await TikTokOpenSDK.share(\n    ['path/to/media1', 'path/to/media2'],\n    false, // isImage (true for images, false for videos)\n    false  // isGreenScreen\n  );\n\n  if (result.isSuccess) {\n    console.log('Share successful!');\n  } else {\n    console.error('Share failed:', result.errorMsg);\n  }\n} catch (error) {\n  console.error('Error sharing to TikTok:', error);\n}\n```\n\n# API\n\n## `TikTokOpenSDK.share(mediaPaths: string[], isImage: boolean, isGreenScreen: boolean): Promise\u003cShareResult\u003e`\n\u003c!-- Shares media to TikTok.\n\nmediaUrls: Array of local media file URLs to share\nisImage: Set to true for images, false for videos\nisGreenScreen: Set to true to use green screen effect (TikTok app only) --\u003e\nShares media to TikTok.\n\n### Parameters\n\n- `mediaPaths: string[]` - Array of local media file paths to share\n- `isImage: boolean` - Set to `true` for images, `false` for videos\n- `isGreenScreen: boolean` - Set to `true` to use green screen effect (TikTok app only)\n\nReturns a Promise that resolves to a `ShareResult` object.\n\n```typescript\ntype ShareResult = ShareSuccessResult | ShareErrorResult;\n\ninterface ShareSuccessResult {\n  isSuccess: true;\n}\n\ninterface ShareErrorResult {\n  isSuccess: false;\n  errorCode: number;\n  subErrorCode?: number;\n  shareState?: number;\n  errorMsg: string;\n}\n```\n\n# iOS Setup\n\nMinimum iOS version: 12.0\nMinimum Xcode version: 10.0\n\n1. Link the package to your project by running `npx pod-install` or `cd ios \u0026\u0026 pod install`.\n2. Add the TikTok OpenSDK client key to your `Info.plist` file:\n\n```xml\n\u003ckey\u003eLSApplicationQueriesSchemes\u003c/key\u003e\n\u003carray\u003e\n    \u003cstring\u003etiktokopensdk\u003c/string\u003e\n    \u003cstring\u003etiktoksharesdk\u003c/string\u003e\n    \u003cstring\u003esnssdk1180\u003c/string\u003e\n    \u003cstring\u003esnssdk1233\u003c/string\u003e\n\u003c/array\u003e\n\u003ckey\u003eTikTokClientKey\u003c/key\u003e\n\u003cstring\u003e$TikTokClientKey\u003c/string\u003e\n\u003ckey\u003eCFBundleURLTypes\u003c/key\u003e\n\u003carray\u003e\n  \u003cdict\u003e\n    \u003ckey\u003eCFBundleURLSchemes\u003c/key\u003e\n    \u003carray\u003e\n      \u003cstring\u003e$TikTokClientKey\u003c/string\u003e\n    \u003c/array\u003e\n  \u003c/dict\u003e\n\u003c/array\u003e\n```\n\n3. Add NSPhotoLibraryUsageDescription to your `Info.plist` file:\n\n```xml\n\u003ckey\u003eNSPhotoLibraryAddUsageDescription\u003c/key\u003e\n\u003cstring\u003e$(PRODUCT_NAME) would like to save photos to your photo library\u003c/string\u003e\n\u003ckey\u003eNSPhotoLibraryUsageDescription\u003c/key\u003e\n\u003cstring\u003e$(PRODUCT_NAME) would like to access your photo library\u003c/string\u003e\n```\n\n4. Update your AppDelegate.m\n\n```objc\n#import \u003cTiktokOpensdkReactNative-Bridging-Header.h\u003e\n\n@implementation AppDelegate\n\n// ... other methods ...\n\n- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary\u003cUIApplicationOpenURLOptionsKey,id\u003e *)options\n{\n  BOOL handled = NO;\n\n  if ([TiktokOpensdkReactNative handleOpenURL:url]) {\n      handled = YES;\n  }\n\n  // Handle other custom URL schemes\n\n  return handled;\n}\n\n- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray\u003cid\u003cUIUserActivityRestoring\u003e\u003e * _Nullable))restorationHandler\n{\n  BOOL handled = NO;\n\n  if ([TiktokOpensdkReactNative handleUserActivity:userActivity]) {\n      handled = YES;\n  }\n\n  // Handle other user activities\n\n  return handled;\n}\n\n@end\n```\n\n# Android Setup\n\nMinimum Android version: API level 21 (Android 5.0 Lollipop) or later\n\n1. Add the TikTok SDK repository to your project-level build.gradle:\n\n```gradle\nallprojects {\n    repositories {\n        maven { url \"https://artifact.bytedance.com/repository/AwemeOpenSDK\" }\n    }\n}\n```\n\n2. Add the TikTok SDK dependencies to your app-level build.gradle\n\n```gradle\ndependencies {\n    implementation 'com.tiktok.open.sdk:tiktok-open-sdk-core:2.3.0'\n    implementation 'com.tiktok.open.sdk:tiktok-open-sdk-share:2.3.0'  // for share API\n}\n```\n\n3. For Android 11 and higher, add the following to your AndroidManifest.xml:\n\n```xml\n\u003cqueries\u003e\n    \u003cpackage android:name=\"com.zhiliaoapp.musically\" /\u003e\n    \u003cpackage android:name=\"com.ss.android.ugc.trill\" /\u003e\n\u003c/queries\u003e\n```\n\n4. Add client key to your strings.xml file:\n\n```xml\n\u003cstring name=\"tiktok_client_key\"\u003e$TikTokClientKey\u003c/string\u003e\n```\n\n5. Add metadata to your AndroidManifest.xml file:\n\n```xml\n\u003cmeta-data android:name=\"com.tiktokopensdkreactnative.tiktok.CLIENT_KEY\" android:value=\"@string/tiktok_client_key\" /\u003e\n```\n\n6. Add this provider to your AndroidManifest.xml:\n```xml\n\u003cprovider\n    android:name=\"androidx.core.content.FileProvider\"\n    android:authorities=\"${applicationId}.tiktokopensdkfileprovider\"\n    android:exported=\"false\"\n    android:grantUriPermissions=\"true\"\u003e\n    \u003cmeta-data\n        android:name=\"android.support.FILE_PROVIDER_PATHS\"\n        android:resource=\"@xml/filepaths\" /\u003e\n\u003c/provider\u003e\n```\n\n7. Create a filepaths.xml file in your res/xml folder:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cpaths xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n    \u003ccache-path name=\"cached_files\" path=\".\" /\u003e\n\u003c/paths\u003e\n```\n\n# Troubleshooting\n\nIf you encounter any issues, please check the TikTok OpenSDK documentation for more detailed setup instructions and troubleshooting tips.\n\n# License\n\nMIT\n\n# Roadmap\n\n- [ ] Refactor API to use a single `share` method with an options object\n- [ ] Add support for login and authorization APIs\n- [ ] Send shareShate for error handling in iOS\n- [ ] Add support redirectUri for both platforms\n- [ ] Add custom client key for both platforms\n- [ ] Refactor API, pass client key, redirectUri, and callerScheme as last parameters\n- [ ] Add support remote media URLs\n- [ ] Handle photo library permissions in native side\n- [ ] Refactor whole android part\n- [ ] Check if tiktok app is installed\n- [ ] Remove isImage parameter and detect media type automatically","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnheroes%2Ftiktok-opensdk-react-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frnheroes%2Ftiktok-opensdk-react-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnheroes%2Ftiktok-opensdk-react-native/lists"}