An open API service indexing awesome lists of open source software.

https://github.com/roseal-extension/roblox-deeplink-parser

Parse Roblox website links, appsflyer links, and deeplinks, mainly for use for deeplinks
https://github.com/roseal-extension/roblox-deeplink-parser

bun roblox

Last synced: 4 months ago
JSON representation

Parse Roblox website links, appsflyer links, and deeplinks, mainly for use for deeplinks

Awesome Lists containing this project

README

          

# Roblox DeepLink Parser
Parse Roblox deeplinks (roblox://*), website links (www.roblox.com), and appsflyer links (ro.blox.com) to get params and get new appysflyer/deeplink/website URLs.

## Example
```ts
import DeepLinkParser from "roblox-deeplink-parser";
const parser = new DeepLinkParser();

// same as parser.parseWebsiteLink
parser.parseLink("https://www.roblox.com/my/avatar").then((link) => {
if (link) {
// roblox://navigation/avatar
console.log(link.toProtocolUrl());
// https://www.roblox.com/my/avatar
console.log(link.toWebsiteUrl());
// https://ro.blox.com/Ebh5?af_dp=roblox%3A%2F%2Fnavigation%2Favatar&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fmy%2Favatar
console.log(link.toAppsFlyerUrl());
}
});

// ... and you can do these as well specifically:
parser.parseProtocolLink("roblox://navigation/avatar")
parser.parseAppsFlyerLink("https://ro.blox.com/Ebh5?af_dp=roblox%3A%2F%2Fnavigation%2Favatar&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fmy%2Favatar");
parser.parseWebsiteLink("https://www.roblox.com/my/avatar");
```

## Reference
| Deeplink | Website Equivalent | Description |
| -------- | ------------------ | ----------- |
| `roblox://experiences/start` or `roblox://`
Search Parameters:
- placeId
- userId
- gameInstanceId
- accessCode
- linkCode
- launchData
- joinAttemptId
- joinAttemptOrigin
- reservedServerAccessCode
- callId
- browserTrackerId
- referralPage
- referredByPlayerId
- eventId
- isoContext | `www.roblox.com/games/start`
Search Parameters:
- placeId
- gameInstanceId
- accessCode
- linkCode
- launchData
- joinAttemptId
- joinAttemptOrigin
- reservedServerAccessCode
- callId
- browserTrackerId
- referralPage
- referredByPlayerId | Join a server or user, for more information please see [Bloxstrap wiki](https://github.com/bloxstraplabs/bloxstrap/wiki/A-deep-dive-on-how-the-Roblox-bootstrapper-works#starting-roblox)
| `roblox://navigation/profile`
Search Parameters:
- groupId
- userId
- friendshipSourceType | `www.roblox.com/users/{userId}/profile` or `www.roblox.com/communities/{groupId}/name` | Open webview of a user or community on the website
| `roblox://navigation/group`
Search Parameters:
- groupId
- forumCategoryId
- forumPostId
- forumCommentId| `www.roblox.com/communities/{groupId}/name` | Open webview of a community page
| `roblox://navigation/profile_card`
Search Parameters:
- userId | `www.roblox.com/users/{userId}/profile` | Opens the native app view of a user profile
| `roblox://navigation/content_posts`
Search Parameters:
- userId
- postId | N/A | Show content posts "captures" from a user or a specific post
| `roblox://navigation/share_links`
Search Parameters:
- type
- code | `www.roblox.com/share-links`
Search Parameters:
- type
- code | Resolve a share link, which could be a friend invite, experience details link, experience invite, etc.
| `roblox://navigation/gift_cards` | `www.roblox.com/giftcards` | Open webview of the giftcards page
| `roblox://navigation/external_web_link`
Search Parameters:
- domain (zendesk)
- locale
- articleId | `en.help.roblox.com/hc/{locale}/articles/{articleId}` | Open webview of a zendesk article
| `roblox://navigation/chat`
Search Parameters:
- userId
- chatId
- entryPoint | N/A | Open chat conversation with a user or another type of conversation (group)
| `roblox://navigation/appeals`
Search Parameters:
- vid | `www.roblox.com/report-appeals#/v/{vid}` | Open webview of appeals page or a certain appeal request
| `roblox://navigation/home` | `www.roblox.com/home` | Open home page
| `roblox://navigation/event_details`
Search Parameters:
- eventId | `www.roblox.com/events/{eventId}` | Open details of an experience event
| `roblox://navigation/crossdevice`
Search Parameters:
- code | `www.roblox.com/crossdevicelogin/confirmcode` | Open crossdevice login page, and automatically enter the code if there was one in the deeplink
| `roblox://navigation/contacts`
Search Parameters:
- contactId
- assetId
- avatarImageUrl | N/A | Open contacts page (or friend requests page)
| `roblox://navigation/avatar_clothing_sort` | N/A | Open avatar clothing sorting page
| `roblox://navigation/avatar_profile_picture_editor` | N/A | Open avatar profile picture editor page
| `roblox://navigation/catalog` | `www.roblox.com/catalog` | Open avatar marketplace page
| `roblox://navigation/catalog/equip`
Search Parameters:
- itemId
- itemType (Asset\|Bundle) | N/A | Equip or try on an avatar item
| `roblox://navigation/friends` | `www.roblox.com/users/friends` | View the currently authenticated user's friends
| `roblox://navigation/avatar`
Search Parameters:
- itemType (Character)
- itemId | `www.roblox.com/my/avatar` | Open the avatar editor page
| `roblox://navigation/more` | N/A | Open the More section of the app
| `roblox://navigation/games` | `www.roblox.com/charts` | Open the charts page
| `roblox://navigation/sort`
Search Parameters:
- sortName | `www.roblox.com/charts#/sortName/{sortId}` | Open the charts sort page
| `roblox://navigation/item_details`
Search Parameters:
- itemType (Look\|Asset\|Bundle)
- itemId | `www.roblox.com/catalog/{itemId}/name`, `www.roblox.com/bundles/{itemId}/name`, or `www.roblox.com/looks/{itemId}/name` | Open the details page of an avatar asset, bundle, or look
| `roblox://navigation/account_info` | `www.roblox.com/my/account#!/info` | Open webview of the account settings info page
| `roblox://navigation/notification_settings` | `www.roblox.com/my/account#!/notifications` | Open webview of the account settings notifications page
| `roblox://navigation/privacy_settings` | `www.roblox.com/my/account#!/privacy` | Open webview of the account settings privacy page
| `roblox://navigation/parental_controls` | `www.roblox.com/my/account#!/parental-controls` | Open webview of the account settings parental controls page
| `roblox://navigation/spending_settings` | `www.roblox.com/my/account#!/payment-methods` | Open webview of the account settings payment methods page
| `roblox://navigation/qr_code_redemption`
Search Parameters:
- itemType (Asset\|Bundle)
- itemId | N/A | Redeem an item which can be obtained by scanning a QR code
| `roblox://navigation/game_details`
Search Parameters:
- gameId
- privateServerLinkCode | `www.roblox.com/games/{placeId}/name`
Search Parameters:
- privateServerLinkCode | Opens the details page of an experience
| `roblox://navigation/security_alert`
Search Parameters:
- payload | `www.roblox.com/security-feedback`
Search Parameters:
- payload | Opens security feedback page
| `roblox://navigation/experience_sort`
Search Parameters:
- sortId | N/A | Opens an experience sort page on the home page
| `roblox://navigation/party` | N/A | Opens the party page
| `roblox://navigation/app_permissions_settings` | `www.roblox.com/my/account#!/app-permissions` | Opens the app permissions page
| `roblox://navigation/screentime_subsettings` | `www.roblox.com/my/account#!/privacy/Screentime` | Opens the screentime subsettings page
| `roblox://navigation/blocked_experiences_subsettings` | `www.roblox.com/my/account#!/privacy/ContentRestrictions/BlockedExperiences` | Opens the blocked experiences subsettings page
| `roblox://navigation/blocked_users_subsettings` | `www.roblox.com/my/account#!/privacy/BlockedUsers` | Opens the blocked users subsettings page
| `roblox://navigation/experience_chat_subsettings` | `www.roblox.com/my/account#!/privacy/ExperienceChat` | Opens the experience chat subsettings page
| `roblox://navigation/party_subsettings` | `www.roblox.com/my/account#!/privacy/Party` | Opens the party subsettings page
| `roblox://navigation/voice_subsettings` | `www.roblox.com/my/account#!/privacy/Voice` | Opens the voice subsettings page
| `roblox://navigation/trading_inventory_subsettings` | `www.roblox.com/my/account#!/privacy/TradingInventory` | Opens the trading inventory subsettings page
| `roblox://navigation/friends_contacts_subsettings` | `www.roblox.com/my/account#!/privacy/FriendsAndContacts` | Opens the friends and contacts subsettings page
| `roblox://navigation/private_server_subsettings` | `www.roblox.com/my/account#!/privacy/PrivateServers` | Opens the private server subsettings page
| `roblox://navigation/visibility_subsettings` | `www.roblox.com/my/account#!/privacy/Visibility` | Opens the visibility subsettings page
| `roblox://navigation/fae` | N/A | Opens the facial age estimation page
| `roblox://navigation/fae_upsell_overlay` | N/A | Opens the facial age estimation overlay page
| `roblox://navigation/account_recovery`
Search Parameters:
- origin
- username
- recoverySessionId | `www.roblox.com/login/forgot-password-or-username`
Search Parameters:
- origin
- username
- recoverySessionId | Opens the account recovery page
| `roblox://navigation/messages` | `https://www.roblox.com/my/messages` | Opens the systen messages page