{"id":15798089,"url":"https://github.com/grokify/ringcentral-sdk-go","last_synced_at":"2025-04-21T08:31:37.119Z","repository":{"id":31752412,"uuid":"35318543","full_name":"grokify/ringcentral-sdk-go","owner":"grokify","description":"RingCentral SDK in Go (https://developers.ringcentral.com). Need help? Post your questions to http://stackoverflow.com/ or send email to devsupport@ringcentral.com.","archived":false,"fork":false,"pushed_at":"2025-04-12T23:59:19.000Z","size":247,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T00:25:10.600Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developers.ringcentral.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grokify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2015-05-09T06:47:54.000Z","updated_at":"2025-04-12T23:59:22.000Z","dependencies_parsed_at":"2023-01-14T19:42:16.536Z","dependency_job_id":"5e36b693-e508-4982-9dba-21fcc9ba0cdd","html_url":"https://github.com/grokify/ringcentral-sdk-go","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Fringcentral-sdk-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Fringcentral-sdk-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Fringcentral-sdk-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Fringcentral-sdk-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grokify","download_url":"https://codeload.github.com/grokify/ringcentral-sdk-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250023505,"owners_count":21362414,"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","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-05T00:23:29.357Z","updated_at":"2025-04-21T08:31:37.089Z","avatar_url":"https://github.com/grokify.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RingCentral SDK in Go\n\n[![Build Status][build-status-svg]][build-status-url]\n[![Lint Status][lint-status-svg]][lint-status-url]\n[![Go Report Card][goreport-svg]][goreport-url]\n[![Docs][docs-godoc-svg]][docs-godoc-url]\n[![SLOC][loc-svg]][repo-url]\n[![License][license-svg]][license-url]\n\n [used-by-svg]: https://sourcegraph.com/github.com/grokify/ringcentral-sdk-go/-/badge.svg\n [used-by-url]: https://sourcegraph.com/github.com/grokify/ringcentral-sdk-go?badge\n [build-status-svg]: https://github.com/grokify/ringcentral-sdk-go/actions/workflows/ci.yaml/badge.svg?branch=master\n [build-status-url]: https://github.com/grokify/ringcentral-sdk-go/actions/workflows/ci.yaml\n [lint-status-svg]: https://github.com/grokify/ringcentral-sdk-go/actions/workflows/lint.yaml/badge.svg?branch=master\n [lint-status-url]: https://github.com/grokify/ringcentral-sdk-go/actions/workflows/lint.yaml\n [goreport-svg]: https://goreportcard.com/badge/github.com/grokify/ringcentral-sdk-go\n [goreport-url]: https://goreportcard.com/report/github.com/grokify/ringcentral-sdk-go\n [codeclimate-status-svg]: https://codeclimate.com/github/grokify/ringcentral-sdk-go/badges/gpa.svg\n [codeclimate-status-url]: https://codeclimate.com/github/grokify/ringcentral-sdk-go\n [docs-godoc-svg]: https://pkg.go.dev/badge/github.com/grokify/ringcentral-sdk-go\n [docs-godoc-url]: https://pkg.go.dev/github.com/grokify/ringcentral-sdk-go\n [license-svg]: https://img.shields.io/badge/license-MIT-rcsdkgo.svg\n [license-url]: https://github.com/grokify/ringcentral-sdk-go/blob/master/LICENSE\n [loc-svg]: https://tokei.rs/b1/github/grokify/ringcentral-sdk-go\n [repo-url]: https://github.com/grokify/ringcentral-sdk-go\n\n:warning: Please use [`grokify/go-ringcentral`](https://github.com/grokify/go-ringcentral) instead :warning:\n\n[![Docs][docs-godoc-svg]][docs-godoc-link]\n[![License][license-svg]][license-link]\n\n## Table of contents\n\n1. [Overview](#overview)\n  1. [Included](#included)\n  2. [To Do](#to-do)\n2. [Installation](#installation)\n2. [Usage](#usage)\n  1. [Instantiation](#instantiation)\n  1. [Authorization](#authorization)\n  1. [API Requests](#api-requests)\n    1. [SMS Example](#sms-example)\n    2. [Fax Example](#fax-example)\n6. [Links](#links)\n7. [Contributions](#contributions)\n8. [License](#license)\n\n***\n\n## Overview\n\nThis is an unofficial Go SDK for the RingCentral for Developers Platform REST API (https://developers.ringcentral.com).\n\nThe core SDK objects follow the general design of the official RingCentral SDKs. Additional functionality is provided for ease of use including request helpers.\n\nThis SDK is an early stage library and subject to breaking changes.\n\nExamples using `*http.Client` and the `oauth2` package can be found here:\n\n\n\n### Included\n\n* OAuth2 authorization\n* Generic API requests\n* Fax request helper to create multipart/mixed messages\n\n### To Do\n\nThe following are not yet included in this SDK:\n\n* OAuth2 token refresh\n* Subscriptions\n* Tests\n\nThis SDK is an experimental SDK and will likely see a major rewrite to be more idiomatic Go. Recent work has been in using `http.Client` with `oauth2` directly (which does handle token refresh) and with Swagger Codegen project (with autogenerated model classes). Information on these efforts can be found here:\n\n* OAuth2 Helpers: [grokify/oauth2more/ringcentral](https://github.com/grokify/oauth2more/tree/master/ringcentral)\n  * example: [ringcentral_get_account.go](https://github.com/grokify/oauth2util-go/blob/master/examples/ringcentral_get_account/ringcentral_get_account.go)\n* Auth Code example: [grokify/beego-oauth2-demo](https://github.com/grokify/beego-oauth2-demo)\n* Swagger Codegen SDK: [grokify/ringcentral-sdk-go-scg](https://github.com/grokify/ringcentral-sdk-go-scg)\n\n\n## Installation\n\n```bash\n$ go get github.com/grokify/ringcentral-sdk-go\n```\n\n## Usage\n\n### Instantation\n\nThe SDK is represented by the global RCSDK constructor. Your application must create an instance of this object.\n\n```go\nimport(\n\t\"github.com/grokify/ringcentral-sdk-go/rcsdk\"\n)\n\n// For Production use: rcsdk.RC_SERVER_PRODUCTION or \"https://platform.ringcentral.com\"\n// For Sandbox use: rcsdk.RC_SERVER_SANDBOX or \"https://platform.devtest.ringcentral.com\"\n\nsdk := rcsdk.NewSdk(\"yourAppKey\", \"yourAppSecret\", rcsdk.RC_SERVER_SANDBOX)\n\n// Get the Platform Singleton\n\nplatform := sdk.GetPlatform();\n```\n\n### Authorization\n\nLogin is accomplished by calling the `platform.Authorize()` method of the Platform singleton with username, extension\n(optional), and password as parameters. A `Promise` instance is returned, resolved with an AJAX `Response` object.\n\nThe `username` should be a phone number in E.164 format without the leading `+`.\n\n```go\nplatform.Authorize(\"16505551212\", \"101\", \"yourPassword\")\n```\n\n### API Requests\n\nGeneral API requests can be made via the `platform` object's `Get`, `Post`, `Put`, and `Delete` methods.\nIndividual API calls are documented on the [API Developer and Reference Guide](https://developers.ringcentral.com/api-docs/latest/index.html).\n\nThe below SMS example shows how this can be used.\n\n#### SMS Example\n\nIn order to send an SMS using the API, make a POST request to `/account/~/extension/~/sms`:\n\n```go\nimport(\n\t\"net/http\"\n\t\"net/url\"\n)\n\nresp, err := platform.Post(\"/account/~/extension/~/sms\", url.Values{}, []byte(`{ \n\t\"to\"   : [{\"phoneNumber\": \"14155551212\"}],\n\t\"from\" :  {\"phoneNumber\": \"16505551212\"}, \n\t\"text\" : \"Test from Go\"\n}`), http.Header{})\n\n```\n\n#### Fax Example\n\nRequest helpers are provided for more complicated requests. The below shows usage of the\nfax request helper which is used to help create the `multipart/mixed` HTTP request.\n\nMore information on usage is available in `./rcsdk/helpers/faxrequest/README.md`.\n\n```go\nimport(\n\t\"github.com/grokify/ringcentral-sdk-go/rcsdk/helpers/faxrequest\"\n\t\"github.com/grokify/ringcentral-sdk-go/rcsdk/helpers/info\"\n)\n\nfax, err := faxrequest.NewRequestHelper(faxrequest.Metadata{\n\tTo:            []info.Caller{info.Caller{PhoneNumber: \"+16505626570\"}},\n\tCoverPageText: \"RingCentral fax example in Go!\"})\nerr = fax.AddText([]byte(\"Hello World!\"), \"text/plain\")\nerr = fax.AddFile(\"/path/to/myfile1.pdf\")\nerr = fax.AddFile(\"/path/to/myfile2.tif\")\nerr = fax.Finalize()\n\nresp, err := platform.Post(\"/account/~/extension/~/fax\", url.Values{}, fax.GetBody(), fax.GetHeaders())\n```\n\n## Links\n\nProject Repo\n\n* https://github.com/grokify/ringcentral-sdk-go\n\nRingCentral API Docs\n\n* https://developers.ringcentral.com/library.html\n\nRingCentral API Explorer\n\n* http://ringcentral.github.io/api-explorer\n\nRingCentral Official SDKs\n\n* https://github.com/ringcentral\n\n## Contributions\n\nAny reports of problems, comments or suggestions are most welcome.\n\nPlease report these on [Github](https://github.com/grokify/ringcentral-sdk-go)\n\n## License\n\nRingCentral SDK is available under an MIT-style license. See {file:LICENSE.txt} for details.\n\nRingCentral SDK \u0026copy; 2015 by John Wang\n\n [docs-godoc-svg]: https://img.shields.io/badge/docs-godoc-blue.svg\n [docs-godoc-link]: https://godoc.org/github.com/grokify/ringcentral-sdk-go\n [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg\n [license-link]: https://github.com/grokify/ringcentral-sdk-go/blob/master/LICENSE.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrokify%2Fringcentral-sdk-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrokify%2Fringcentral-sdk-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrokify%2Fringcentral-sdk-go/lists"}