{"id":15903684,"url":"https://github.com/quickblox/quickblox-react-native-sdk","last_synced_at":"2026-01-17T17:40:09.552Z","repository":{"id":65464936,"uuid":"217294137","full_name":"QuickBlox/quickblox-react-native-sdk","owner":"QuickBlox","description":"quickblox-react-native-sdk","archived":false,"fork":false,"pushed_at":"2025-06-24T18:01:23.000Z","size":8,"stargazers_count":4,"open_issues_count":13,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-08-22T16:52:15.412Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QuickBlox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"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":"2019-10-24T12:30:29.000Z","updated_at":"2025-05-15T21:57:43.000Z","dependencies_parsed_at":"2024-04-09T12:52:11.658Z","dependency_job_id":"68f67add-845c-4367-9484-bcd732281a5e","html_url":"https://github.com/QuickBlox/quickblox-react-native-sdk","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"15136460355fa505237af06790f2d8ccfa0ebb61"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/QuickBlox/quickblox-react-native-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fquickblox-react-native-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fquickblox-react-native-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fquickblox-react-native-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fquickblox-react-native-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QuickBlox","download_url":"https://codeload.github.com/QuickBlox/quickblox-react-native-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fquickblox-react-native-sdk/sbom","scorecard":{"id":116142,"data":{"date":"2025-08-11","repo":{"name":"github.com/QuickBlox/quickblox-react-native-sdk","commit":"5c7a7c349ec02172e98e6bdbf2c740218a1a7d2f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/5 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 1 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T01:20:22.057Z","repository_id":65464936,"created_at":"2025-08-16T01:20:22.058Z","updated_at":"2025-08-16T01:20:22.058Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272280357,"owners_count":24906116,"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","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-06T12:03:42.935Z","updated_at":"2026-01-17T17:40:09.495Z","avatar_url":"https://github.com/QuickBlox.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuickBlox React Native SDK\n\n## Documentation\nSee docs at https://docs.quickblox.com/docs/react-native-quick-start\n\n## Quick Start\nThis guide demonstarates how to connect **quickblox-react-native-sdk** to your project and start development.\n\n### Create a new app in the Admin Panel\nQuickBlox application includes everything that brings messaging right into your application - chat, video calling, users, push notifications, etc. To create a QuickBlox application, follow the steps below:\n\n1. Register a new account following [this link](https://admin.quickblox.com/signup). Type in your email and password to sign in. You can also sign in with your Google or Github accounts. \n2. Create the app clicking **New app** button. \n3. Configure the app. Type in the information about your organization into corresponding fields and click **Add** button.\n4. Go to **Dashboard** --\u003e **Overview** --\u003e **Credentials** groupbox and copy your **Application ID**, **Authorization Key**, **Authorization Secret**, and **Account Key**.\n\n### Install React Native SDK into your app\nTo connect QuickBlox to your app just add it into your dependencies in `package.json` - to do so, in the root directory of the project execute the following command in terminal:\n\n`npm install quickblox-react-native-sdk --save`\n\niOS and Android have different dependencies systems. For that reason, you need to install dependencies in your iOS project. Just locate **ios/** folder in the root directory of the project and enter the following command in terminal: \n\n`pod install`\n\n### ⚠️ Android – Breaking Change (from v0.12.0 and above)\n\nStarting from **v0.12.0**, the SDK **no longer manages permissions** required for video calling functionality on Android.\n\nIf your app uses video calling, you must **manually declare** the necessary permissions in your app’s `AndroidManifest.xml` file.\n\n\u003e **Note:** Ensure you're modifying the main `AndroidManifest.xml` file at the application level, **not** a test or variant manifest.\n\n#### Required Permissions Example:\n```xml\n\u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\u003e\n    \u003c!-- Permissions required for QuickBlox video calling functionality --\u003e\n    \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE_CAMERA\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE_MICROPHONE\" /\u003e\n    \u003c!-- other manifest entries --\u003e\n\u003c/manifest\u003e\n```\n\n### Send your first message\n#### Initialize QuickBlox SDK\n\nInitialize the framework with your application credentials. Pass `appId`, `authKey`, `authSecret`, `accountKey` to the `QB.settings.init` method using the code snippet below. As a result, your application details are stored in the server database and can be subsequently identified on the server. \n\n```javascript\nconst appSettings = {\n  appId: '',\n  authKey: '',\n  authSecret: '',\n  accountKey: '',\n  apiEndpoint: '', // optional\n  chatEndpoint: '' // optional\n};\n\nQB.settings\n  .init(appSettings)\n  .then(function () {\n    // SDK initialized successfully\n  })\n  .catch(function (e) {\n    // Some error occured, look at the exception message for more details\n  });\n```\n\n#### Authorize user\n\nIn order to use the abilities of QuickBlox SDK, you need to authorize your app on the server, log in to your account and create a session. To get it all done call `QB.auth.login` method and pass `login` and `password` parameters to it using the code snippet below. \n\n```javascript\nQB.auth\n  .login({\n    login: 'yourlogin',\n    password: 'yourpassword'\n  })\n  .then(function (info) {\n    // signed in successfully, handle info as necessary\n    // info.user - user information\n    // info.session - current session\n  })\n  .catch(function (e) {\n    // handle error\n  });\n```\n\n**Note!**\nYou must initialize SDK before calling any methods through the SDK except for the method initializing your QuickBlox instance. If you attempt to call a method without connecting, the error is returned.\n\n#### Connect to chat\n\nTo connect to chat server, use the code snippet below:\n\n```javascript\nQB.chat\n  .connect({\n    userId: 12345,\n    password: 'passw0rd!'\n  })\n  .then(function () {\n    // connected successfully\n  })\n  .catch(function (e) {\n    // some error occurred\n  });\n```\n\n#### Create dialog\n\nQuickBlox provides three types of dialogs: **1-1 dialog**, **group dialog**, and **public dialog**. Learn more about dialogs [here](/docs/react-native-messaging#section--dialogs-). \n\nLet’s create **1-1 dialog**. Call `QB.chat.createDialog` method and pass `QB.chat.DIALOG_TYPE.CHAT` parameter as a dialog type to it. `QB.chat.DIALOG_TYPE.CHAT` parameter allows specifying that two occupants are going to participate in the dialog.\n\n```javascript\nQB.chat\n  .createDialog({\n    type: QB.chat.DIALOG_TYPE.CHAT,\n    occupantsIds: [12345]\n  })\n  .then(function (dialog) {\n    // handle as necessary\n  })\n  .catch(function (e) {\n    // handle error\n  });\n```\n\n#### Receive messages\n\nTo receive new messages, assign event handler using the code snippet below:\n\n```javascript\nimport { NativeEventEmitter } from 'react-native'\n\nconst emitter = new NativeEventEmitter(QB.chat)\n\nemitter.addListener(QB.chat.EVENT_TYPE.MESSAGE.RECEIVED_NEW_MESSAGE, event =\u003e {\n  const { type, payload } = event\n  // type - type of the event (string)\n  // payload - new message (object)\n})\n```\n\n#### Send message\n\nWhen a dialog is created, a user can send a message. To create and send your first message, call `QB.chat.sendMessage` method and specify the `dialogId` and `body` parameters to it. Pass `saveToHistory` parameter if you want this message to be saved in chat history that is stored forever.\n\n```javascript\nconst message = {\n  dialogId: 'dsfsd934329hjhkda98793j2',\n  body: 'Hey there!',\n  saveToHistory: true\n};\n\nQB.chat\n  .sendMessage(message)\n  .then(function () { /* send successfully */ })\n  .catch(function (e) { /* handle error */ })\n```\n\n## LICENSE\nFor license information, please visit: https://quickblox.com/terms-of-use/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickblox%2Fquickblox-react-native-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquickblox%2Fquickblox-react-native-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickblox%2Fquickblox-react-native-sdk/lists"}