{"action":"created","comment":{"url":"https://api.github.com/repos/Azure/azure-signalr/pulls/comments/216586210","pull_request_review_id":154098907,"id":216586210,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNjU4NjIxMA==","diff_hunk":"@@ -0,0 +1,117 @@\n+# REST API in Azure SignalR Service\r\n+\r\n+- [Typical Server-less Architecture](#serverless)\r\n+- [API](#api)\r\n+    - [Broadcast message to all clients](#broadcast)\r\n+    - [Broadcast message to a group](#broadcast-group)\r\n+    - [Send message to a user](#send-user)\r\n+    - [Add a user to a group](#add-user-to-group)\r\n+    - [Remove a user from a group](#remove-user-from-group)\r\n+- [Using REST API](#using-rest-api)\r\n+    - [User-related REST API](#user-api)\r\n+    - [Authentication](#authentication)\r\n+        - [Signing Algorithm and Signature](#signing)\r\n+        - [Claims](#claims)\r\n+\r\n+On top of classical client-server pattern, Azure SignalR Service provides a set of REST APIs, so that you can easily integrate real-time functionality into your server-less architecture.\r\n+\r\n+<a name=\"serverless\"></a>\r\n+## Typical Server-less Architecture with Azure Functions\r\n+\r\n+The following diagram shows a typical server-less architecture of using Azure SignalR Service with Azure Functions.\r\n+\r\n+![Typical Serverless Architecture](./images/serverless-arch.png)\r\n+\r\n+- `redirect` function will return negotiation response and redirect all clients to Azure SignalR Service.\r\n+- `broadcast` function will call Azure SignalR Service's REST API. Then SignalR Service will broadcast the message to all connected clients.\r\n+\r\n+You can find a complete sample of using Azure SignalR Service with Azure Functions at [here](https://github.com/aspnet/AzureSignalR-samples/tree/master/samples/RealtimeSignIn).\r\n+\r\n+## API\r\n+\r\n+The following table shows all versions of REST API we have for now. You can also find the swagger file for each version of REST API.\r\n+\r\n+API Version | Status | Port | Spec\r\n+---|---|---|---\r\n+`1.0-preview` | Available | 5002 | [swagger](./swagger/v1-preview.json)\r\n+`1.0` | *Not Available until GA* | Default | [swagger](./swagger/v1.json)\r\n+\r\n+Available APIs of each version are listed as following.\r\n+\r\n+API | `1.0-preview` | `1.0`\r\n+---|---|---\r\n+[Broadcast to all](#broadcast) | :heavy_check_mark: | :heavy_check_mark:\r\n+[Broadcast to a group](#broadcast-group) | :heavy_check_mark: | :heavy_check_mark:\r\n+Broadcast to a few groups | :heavy_check_mark: (Deprecated) | `N/A`\r\n+[Send to a user](#send-user) | :heavy_check_mark: | :heavy_check_mark:\r\n+Send to a few users | :heavy_check_mark: (Deprecated) | `N/A`\r\n+[Add a user to a group](#add-user-to-group) | `N/A` | :heavy_check_mark:\r\n+[Remove a user from a group](#remove-user-from-group) | `N/A` | :heavy_check_mark:\r\n+\r\n+<a name=\"broadcast\"></a>\r\n+### Broadcast message to all clients\r\n+\r\n+API Version | HTTP Method | Request URL | Request Body\r\n+---|---|---|---\r\n+`1.0-preview` | `POST` | `https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>` | `{ \"target\":\"<method-name>\", \"arguments\":[ ... ] }`\r\n+`1.0` | `POST` | `https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>` | Same as above\r\n+\r\n+<a name=\"broadcast-group\"></a>\r\n+### Broadcast message to a group\r\n+\r\n+API Version | HTTP Method | Request URL | Request Body\r\n+---|---|---|---\r\n+`1.0-preview` | `POST` | `https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name>` | `{ \"target\":\"<method-name>\", \"arguments\":[ ... ] }`\r\n+`1.0` | `POST` | `https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>` | Same as above\r\n+\r\n+<a name=\"send-user\"></a>\r\n+### Send message to a user\r\n+\r\n+API Version | HTTP Method | Request URL | Request Body\r\n+---|---|---|---\r\n+`1.0-preview` | `POST` | `https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id>` | `{ \"target\":\"<method-name>\", \"arguments\":[ ... ] }`\r\n+`1.0` | `POST` | `https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>` | Same as above\r\n+\r\n+<a name=\"add-user-to-group\"></a>\r\n+### Add a user to a group\r\n+\r\n+API Version | HTTP Method | Request URL\r\n+---|---|---\r\n+`1.0` | `PUT` | `https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>`\r\n+\r\n+<a name=\"remove-user-from-group\"></a>\r\n+### Remove a user from a group\r\n+\r\n+API Version | HTTP Method | Request URL\r\n+---|---|---\r\n+`1.0` | `DELETE` | `https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>`\r\n+\r\n+## Using REST API\r\n+\r\n+<a name=\"user-api\"></a>\r\n+### User-related REST API\r\n+\r\n+In order to call user-related REST API, each of your clients should identify themselves to Azure SignalR Service.\r","path":"docs/rest-api.md","position":94,"original_position":94,"commit_id":"4bf248f6f0a12fb152d0c7e596c12c22ccb22832","original_commit_id":"4bf248f6f0a12fb152d0c7e596c12c22ccb22832","user":{"login":"chenkennt","id":8436953,"node_id":"MDQ6VXNlcjg0MzY5NTM=","avatar_url":"https://avatars2.githubusercontent.com/u/8436953?v=4","gravatar_id":"","url":"https://api.github.com/users/chenkennt","html_url":"https://github.com/chenkennt","followers_url":"https://api.github.com/users/chenkennt/followers","following_url":"https://api.github.com/users/chenkennt/following{/other_user}","gists_url":"https://api.github.com/users/chenkennt/gists{/gist_id}","starred_url":"https://api.github.com/users/chenkennt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chenkennt/subscriptions","organizations_url":"https://api.github.com/users/chenkennt/orgs","repos_url":"https://api.github.com/users/chenkennt/repos","events_url":"https://api.github.com/users/chenkennt/events{/privacy}","received_events_url":"https://api.github.com/users/chenkennt/received_events","type":"User","site_admin":false},"body":"Add more details about how this can be done (through negotiate). Add an example about negotiate response.","created_at":"2018-09-11T08:31:12Z","updated_at":"2018-09-11T08:31:13Z","html_url":"https://github.com/Azure/azure-signalr/pull/195#discussion_r216586210","pull_request_url":"https://api.github.com/repos/Azure/azure-signalr/pulls/195","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Azure/azure-signalr/pulls/comments/216586210"},"html":{"href":"https://github.com/Azure/azure-signalr/pull/195#discussion_r216586210"},"pull_request":{"href":"https://api.github.com/repos/Azure/azure-signalr/pulls/195"}}},"pull_request":{"url":"https://api.github.com/repos/Azure/azure-signalr/pulls/195","id":214509776,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0NTA5Nzc2","html_url":"https://github.com/Azure/azure-signalr/pull/195","diff_url":"https://github.com/Azure/azure-signalr/pull/195.diff","patch_url":"https://github.com/Azure/azure-signalr/pull/195.patch","issue_url":"https://api.github.com/repos/Azure/azure-signalr/issues/195","number":195,"state":"open","locked":false,"title":"Add swagger and documentation for V1 REST API","user":{"login":"xscript","id":2300784,"node_id":"MDQ6VXNlcjIzMDA3ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2300784?v=4","gravatar_id":"","url":"https://api.github.com/users/xscript","html_url":"https://github.com/xscript","followers_url":"https://api.github.com/users/xscript/followers","following_url":"https://api.github.com/users/xscript/following{/other_user}","gists_url":"https://api.github.com/users/xscript/gists{/gist_id}","starred_url":"https://api.github.com/users/xscript/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xscript/subscriptions","organizations_url":"https://api.github.com/users/xscript/orgs","repos_url":"https://api.github.com/users/xscript/repos","events_url":"https://api.github.com/users/xscript/events{/privacy}","received_events_url":"https://api.github.com/users/xscript/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-09-11T04:36:52Z","updated_at":"2018-09-11T08:31:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"397562fb4ce8838a11cfcd74039df5227a3cea35","assignee":null,"assignees":[],"requested_reviewers":[{"login":"vwxyzh","id":2705828,"node_id":"MDQ6VXNlcjI3MDU4Mjg=","avatar_url":"https://avatars2.githubusercontent.com/u/2705828?v=4","gravatar_id":"","url":"https://api.github.com/users/vwxyzh","html_url":"https://github.com/vwxyzh","followers_url":"https://api.github.com/users/vwxyzh/followers","following_url":"https://api.github.com/users/vwxyzh/following{/other_user}","gists_url":"https://api.github.com/users/vwxyzh/gists{/gist_id}","starred_url":"https://api.github.com/users/vwxyzh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vwxyzh/subscriptions","organizations_url":"https://api.github.com/users/vwxyzh/orgs","repos_url":"https://api.github.com/users/vwxyzh/repos","events_url":"https://api.github.com/users/vwxyzh/events{/privacy}","received_events_url":"https://api.github.com/users/vwxyzh/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Azure/azure-signalr/pulls/195/commits","review_comments_url":"https://api.github.com/repos/Azure/azure-signalr/pulls/195/comments","review_comment_url":"https://api.github.com/repos/Azure/azure-signalr/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure/azure-signalr/issues/195/comments","statuses_url":"https://api.github.com/repos/Azure/azure-signalr/statuses/4bf248f6f0a12fb152d0c7e596c12c22ccb22832","head":{"label":"Azure:kevinzha/doc","ref":"kevinzha/doc","sha":"4bf248f6f0a12fb152d0c7e596c12c22ccb22832","user":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"repo":{"id":123069751,"node_id":"MDEwOlJlcG9zaXRvcnkxMjMwNjk3NTE=","name":"azure-signalr","full_name":"Azure/azure-signalr","owner":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Azure/azure-signalr","description":"Azure SignalR Service SDK for .NET","fork":false,"url":"https://api.github.com/repos/Azure/azure-signalr","forks_url":"https://api.github.com/repos/Azure/azure-signalr/forks","keys_url":"https://api.github.com/repos/Azure/azure-signalr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure/azure-signalr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure/azure-signalr/teams","hooks_url":"https://api.github.com/repos/Azure/azure-signalr/hooks","issue_events_url":"https://api.github.com/repos/Azure/azure-signalr/issues/events{/number}","events_url":"https://api.github.com/repos/Azure/azure-signalr/events","assignees_url":"https://api.github.com/repos/Azure/azure-signalr/assignees{/user}","branches_url":"https://api.github.com/repos/Azure/azure-signalr/branches{/branch}","tags_url":"https://api.github.com/repos/Azure/azure-signalr/tags","blobs_url":"https://api.github.com/repos/Azure/azure-signalr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure/azure-signalr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure/azure-signalr/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure/azure-signalr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure/azure-signalr/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure/azure-signalr/languages","stargazers_url":"https://api.github.com/repos/Azure/azure-signalr/stargazers","contributors_url":"https://api.github.com/repos/Azure/azure-signalr/contributors","subscribers_url":"https://api.github.com/repos/Azure/azure-signalr/subscribers","subscription_url":"https://api.github.com/repos/Azure/azure-signalr/subscription","commits_url":"https://api.github.com/repos/Azure/azure-signalr/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure/azure-signalr/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure/azure-signalr/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure/azure-signalr/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure/azure-signalr/contents/{+path}","compare_url":"https://api.github.com/repos/Azure/azure-signalr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure/azure-signalr/merges","archive_url":"https://api.github.com/repos/Azure/azure-signalr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure/azure-signalr/downloads","issues_url":"https://api.github.com/repos/Azure/azure-signalr/issues{/number}","pulls_url":"https://api.github.com/repos/Azure/azure-signalr/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure/azure-signalr/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure/azure-signalr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure/azure-signalr/labels{/name}","releases_url":"https://api.github.com/repos/Azure/azure-signalr/releases{/id}","deployments_url":"https://api.github.com/repos/Azure/azure-signalr/deployments","created_at":"2018-02-27T03:52:57Z","updated_at":"2018-09-04T12:50:27Z","pushed_at":"2018-09-11T05:33:57Z","git_url":"git://github.com/Azure/azure-signalr.git","ssh_url":"git@github.com:Azure/azure-signalr.git","clone_url":"https://github.com/Azure/azure-signalr.git","svn_url":"https://github.com/Azure/azure-signalr","homepage":"https://aka.ms/signalr-service","size":1104,"stargazers_count":30,"watchers_count":30,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":16,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":10,"open_issues":16,"watchers":30,"default_branch":"dev"}},"base":{"label":"Azure:dev","ref":"dev","sha":"18ecde5b092d26ca65df59c3097c420dc2487ea0","user":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"repo":{"id":123069751,"node_id":"MDEwOlJlcG9zaXRvcnkxMjMwNjk3NTE=","name":"azure-signalr","full_name":"Azure/azure-signalr","owner":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Azure/azure-signalr","description":"Azure SignalR Service SDK for .NET","fork":false,"url":"https://api.github.com/repos/Azure/azure-signalr","forks_url":"https://api.github.com/repos/Azure/azure-signalr/forks","keys_url":"https://api.github.com/repos/Azure/azure-signalr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure/azure-signalr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure/azure-signalr/teams","hooks_url":"https://api.github.com/repos/Azure/azure-signalr/hooks","issue_events_url":"https://api.github.com/repos/Azure/azure-signalr/issues/events{/number}","events_url":"https://api.github.com/repos/Azure/azure-signalr/events","assignees_url":"https://api.github.com/repos/Azure/azure-signalr/assignees{/user}","branches_url":"https://api.github.com/repos/Azure/azure-signalr/branches{/branch}","tags_url":"https://api.github.com/repos/Azure/azure-signalr/tags","blobs_url":"https://api.github.com/repos/Azure/azure-signalr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure/azure-signalr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure/azure-signalr/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure/azure-signalr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure/azure-signalr/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure/azure-signalr/languages","stargazers_url":"https://api.github.com/repos/Azure/azure-signalr/stargazers","contributors_url":"https://api.github.com/repos/Azure/azure-signalr/contributors","subscribers_url":"https://api.github.com/repos/Azure/azure-signalr/subscribers","subscription_url":"https://api.github.com/repos/Azure/azure-signalr/subscription","commits_url":"https://api.github.com/repos/Azure/azure-signalr/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure/azure-signalr/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure/azure-signalr/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure/azure-signalr/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure/azure-signalr/contents/{+path}","compare_url":"https://api.github.com/repos/Azure/azure-signalr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure/azure-signalr/merges","archive_url":"https://api.github.com/repos/Azure/azure-signalr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure/azure-signalr/downloads","issues_url":"https://api.github.com/repos/Azure/azure-signalr/issues{/number}","pulls_url":"https://api.github.com/repos/Azure/azure-signalr/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure/azure-signalr/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure/azure-signalr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure/azure-signalr/labels{/name}","releases_url":"https://api.github.com/repos/Azure/azure-signalr/releases{/id}","deployments_url":"https://api.github.com/repos/Azure/azure-signalr/deployments","created_at":"2018-02-27T03:52:57Z","updated_at":"2018-09-04T12:50:27Z","pushed_at":"2018-09-11T05:33:57Z","git_url":"git://github.com/Azure/azure-signalr.git","ssh_url":"git@github.com:Azure/azure-signalr.git","clone_url":"https://github.com/Azure/azure-signalr.git","svn_url":"https://github.com/Azure/azure-signalr","homepage":"https://aka.ms/signalr-service","size":1104,"stargazers_count":30,"watchers_count":30,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":16,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":10,"open_issues":16,"watchers":30,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure/azure-signalr/pulls/195"},"html":{"href":"https://github.com/Azure/azure-signalr/pull/195"},"issue":{"href":"https://api.github.com/repos/Azure/azure-signalr/issues/195"},"comments":{"href":"https://api.github.com/repos/Azure/azure-signalr/issues/195/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure/azure-signalr/pulls/195/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure/azure-signalr/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure/azure-signalr/pulls/195/commits"},"statuses":{"href":"https://api.github.com/repos/Azure/azure-signalr/statuses/4bf248f6f0a12fb152d0c7e596c12c22ccb22832"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"chenkennt"}}