social/docs/Testing-the-API.md

3.4 KiB

Testing the API

Creating the App

This is the first request a 3rd party client would need to send:

curl -X POST https://your.nextcloud.com/index.php/apps/social/api/v1/apps \
  -d "client_name=curl&redirect_uris=https://test.example.net/oauth/redirected&scopes=write+read&website=https://test.example.net"

should returns:

{
   "id": 1,
   "name": "curl",
   "website": "https://test.example.net",
   "scopes": "write read",
   "client_id": "zahscLgi9rZp5SpiOuXGHoqZGAziMhlXVgmTM4Fl",
   "client_secret": "xcDAPQLISsAw4UKqrut1OarDuCXf3IzOJxXQesHs"
}

Authorize App, identify Account

Open a browser and go to the generated URL using client_id:

https://your.nextcloud.com/index.php/apps/social/oauth/authorize?response_type=code&scope=write+read&redirect_uri=https://test.example.net/oauth/redirected&client_id=zahscLgi9rZp5SpiOuXGHoqZGAziMhlXVgmTM4Fl

After authentication, using the credentials of your Nextcloud account, you will be redirected to https://test.example.net/oauth/redirected?code=VcIgHmSYPYrgrHyM8kRDxf4Gz-dJOuoNBuEz9mlZtw4

Obtain token

Once you have a code:

curl -X POST https://your.nextcloud.com/index.php/apps/social/oauth/token \
 -d "client_id=zahscLgi9rZp5SpiOuXGHoqZGAziMhlXVgmTM4Fl&redirect_uri=https://test.example.net/oauth/redirected&client_secret=xcDAPQLISsAw4UKqrut1OarDuCXf3IzOJxXQesHs&grant_type=authorization_code&code=VcIgHmSYPYrgrHyM8kRDxf4Gz-dJOuoNBuEz9mlZtw4"

result will be:

{
   "access_token": "7UnD7f1fbMUUGqRalX0cTSW5H-Ion40_at560DsvG1w",
   "token_type": "Bearer",
   "scope": "write read",
   "created_at": 1600354593
}

Testing the API

  • A first request to check the app:
curl https://your.nextcloud.com/index.php/apps/social/api/v1/apps/verify_credentials \
  -H "Authorization: Bearer 7UnD7f1fbMUUGqRalX0cTSW5H-Ion40_at560DsvG1w"

should returns

{
  "name": "curl",
  "website": "https://test.example.net"
}
  • Check the account:
curl https://your.nextcloud.com/index.php/apps/social/api/v1/accounts/verify_credentials \
  -H "Authorization: Bearer 7UnD7f1fbMUUGqRalX0cTSW5H-Ion40_at560DsvG1w"

should returns

{
  "id": "42",
  "username": "cult",
  "acct": "cult",
  "display_name": "cult",
  "locked": false,
  "bot": false,
  "discoverable": false,
  "group": false,
  "created_at": "2020-09-15T13:45:07.000Z",
  "note": "",
  "url": "https://your.nextcloud.com/index.php/apps/social/@cult",
  "avatar": "https://your.nextcloud.com/index.php/documents/avatar/a7ad599c-499a-4680-9f01-e7f57fbea631",
  "avatar_static": "https://your.nextcloud.com/index.php/documents/avatar/a7ad599c-499a-4680-9f01-e7f57fbea631",
  "header": "https://your.nextcloud.com/index.php/documents/avatar/a7ad599c-499a-4680-9f01-e7f57fbea631",
  "header_static": "https://your.nextcloud.com/index.php/documents/avatar/a7ad599c-499a-4680-9f01-e7f57fbea631",
  "followers_count": 2,
  "following_count": 0,
  "statuses_count": 12,
  "last_status_at": "2020-09-15",
  "source": {
    "privacy": "public",
    "sensitive": false,
    "language": "en",
    "note": "",
    "fields": [],
    "follow_requests_count": 0
  },
  "emojis": [],
  "fields": []
}