Shakebug is a mobile application bug reporting and feedback platform. It allows mobile app developers to easily gather feedback and bug reports from their testers and users, Also includes a suite of tools for analyzing crash reports. The platform supports iOS, Android and React-Native platforms.
Some of the features offered by Shakebug:
Bug Reporting: Allows users reports bug and crash directly from within the app which include a screenshot, screen recording, and device information.
Crash reporting: Automatically captures and reports crashes as they happen, with detailed stack traces and device information using our AI.
User sessions: Records and replays user sessions to help developers understand how users are interacting with their app.
Analytics: Along with bugs and crash reporting, Shakebug analyzes the application usage in different ways like session, language, countries etc. It also allows users to check analytics in the form of graphical representation over the selection period of time.
Events: Developers can add custom events and values for each action of the application easily where they want. In addition to this, users can also check the session of each event and value in graphical form as well.
Integrations: Shakebug can be integrated with other tools such as Trello, Asana, Slack, Wrike, Monday and Jira to help streamline the workflow for any software company.
Collaboration: Allows team members to communicate and collaborate in real-time through comments and notifications via email.
SDK: Shakebug also provides a SDK that can be integrated with the app, which can be used to enable the above-mentioned features. Once Shakebug is integrated, it can be easily triggered by users by shaking their device, hence the name Shake to send bug report.
Shakebug’s goal is to provide developers with all the information they need to understand and fix bugs and crashes, it aims to make the debugging process faster and more efficient by providing detailed information and context on the events leading up to the crash.
API
Shakebug provides a RESTful API that allows developers to access and manipulate data on the platform, such as adding bug and crashes. The Shakebug API is a powerful tool that can be used to automate and integrate Shakebug with other applications and services, and to build custom tools and integrations.
First step is to generate APP key using next section.
Managing your APP Key
Shakebug is a mobile application debugging and feedback platform that uses Auth Token for authentication. To access the Shakebug API, developers will need to obtain an APP Key and by using that APP Key developer can generate Access Token. The process of Generating App Key requires several steps:
1. Login to your shakebug account.
2. Find the “Developer” menu by clicking on user icon on right-top icon. See the attached image:
3. Click “CREATE A NEW APP” and create your first app.
4. Give appropriate name
5. Click Generate
6. It will generate key.
Let’s copy your App key and save it at safe place.
Note
This “App Key” will be used for each request you make, to identify who you are. With this App Key, you'll be ready to start calling Shakebug API.
Authentication
In order to access the Shakebug API, developers will need to use an authentication token. The Shakebug API uses a combination of APP key and OAuth tokens for authentication.
OAuth is an open standard for token-based authentication and authorization. This method allows your users to grant your application access to their Shakebug accounts, so you can perform actions on their behalf.
Once you have an access token, you can include it in the Authorization header of your requests to the API.
For implementing Shakebug API in your project, follows below steps:
1. Requesting authorization Token
To start the authorization process, the user should click on the link in your application that will direct him to the following URL:
https://app.shakebug.com/authorize?key=<APP_Key>&&return_url=<return_url>
Please replace APP_KEY with your secret APP key, which can be found in your Shakebug website -> developer->App_key
PARAMETER | REQUIRED | DESCRIPTION |
---|---|---|
key | Required | The App-Key you obtained in the Initial Setup while create app from developer tab. |
return_url | Required | URL where the response will be redirected. We assume that you have a working web server with a public address that can correctly handle Shakebug requests. |
2. Handling authorization Token
After clicking the authorization URL from the first step, the user is redirected to the Shakebug login page (if they aren't already logged in).
The user will be asked to enter the email and password they use to log in to Shakebug and then click Login.
After login, the user should be prompted with the following screen:
If the user grants access on the consent page, then they will be redirected to the redirect_url with the token parameter set to the access token.
Once you click Allow you'll grant your own app (identified via your APP key) access to your account and they will be redirected to the redirect_url with the token parameter set to the access token.
This token along with your API key can be used to read and write for your entire Shakebug account. Make sure Tokens should be kept secret!
Here's an example of how to retrieve a list of projects from your Shakebug account:
Get project
Return list of projects.
GET https://app.shakebug.com/projects?key=<your app key>
Authorization Bearer <Your access token>
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.shakebug.com/projects?key=<your App key>",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <your access token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
Response
{
"status": 200,
"data": {
"projects":[
{
"id": "ZOqPZJpasBxK5c8MRr5px9rtfg",
"name": "test ",
"platform": "iOS"
}
]
}
}
Add Bug
Add bug in specific project.
POST https://app.shakebug.com/bug
Authorization Bearer <Your access token>
PARAMETER | TYPE | PLATFORM | REQUIRED | DESCRIPTION |
---|---|---|---|---|
project | String | All | Required | The ID of the Projet. |
description | String | All | Required | The Description of bug. |
bugtypes | String | All | Required | Type of bug(either bug or crashed) |
String | All | Optional | Email of user that you want attach with this bug. | |
batteryLevel | String | Ios, Android | Optional | Battery level of device from which bug is reported. |
memory | String | Ios, Android | Optional | Memory of device from which bug is reported. |
devicemodel | String | Ios, Android | Optional | Device model of device from which bug is reported. |
batteryLevel | String | Ios, Android | Optional | Battery level of device from which bug is reported. |
osversion | String | Ios, Android | Optional | Os version of device from which bug is reported. |
internettype | String | Ios, Android | Optional | Type of Mobile network. |
browser_name | String | Web | Optional | Name of browser from which bug is reported. |
browser_full_version | String | Web | Optional | Full version of browser. |
browser_user_agent | String | Web | Optional | User agent of browser. |
browser_language | String | Web | Optional | Name of browser from which bug is reported. |
browser_platform | String | Web | Optional | Browser’s platform. |
browser_height | String | Web | Optional | Height of browser. |
browser_width | String | Web | Optional | Width of browser. |
is_web | Int | ALL | Required | Possible value 1 or 0. If your project’s platform is web then value of is_web parameter will be 1 otherwise 0. |
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.shakebug.com/bug",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\n \"project\" : \"YWjbqL7xzhFIVBMYvwMJzR-NaQ\",\n \"description\" : \"test bug\",\n \"bugtypes\" : \"bug\"\n}",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <your access token>"
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
Response
{
"status": 200,
"data": {
"bug_id": "u9mfXevbBDwyYz9zZ0_dKNhmeC1B"
}
}
Add Attachment
If you task need any image or video then after adding bug you need to call following /attachment API.
POST https://app.shakebug.com/bug/attachment
Authorization Bearer <Your access token>
This request uses multipart/form-data as the content type.
PARAMETER | TYPE | PLATFORM | REQUIRED | DESCRIPTION |
---|---|---|---|---|
bug_id | String | All | Required | The id of the bug where the file will be added. |
attachment | File | All | Required | The file to upload.. |
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL =>'https://app.shakebug.com/bug/attachment',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('bug_id' => 'Hlmbb7hsmjfBopiS2t9_WWGK2LXu','attachment'=> new CURLFILE('<Your local image path>')),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <your access token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
Response
{
"status": 200,
"data": {
"bug_id": "fcp8ThCjkv3hTE011xvVi0xCAsTfYFLe7kgMEqO2iquyA-PFc_jrOaT0_R8"
}
}