Для этого есть два шага:
- Получите идентификатор правила ответа для правила, которое вы хотите изменить. Это может быть стандартное правило, такое как
business-hours-rule
, или созданное вами пользовательское правило. Вы можете вызвать Get Call Handling Rules API, чтобы получить список текущих стандартных и настраиваемых правил.
- Вызовите Update Greeting API, задав для
type
значение HoldMusic
и answeringRuleId
для идентификатора, который вы хотите обновить, например. business-hours-rule
На самом деле существует несколько способов вызова Update Greeting API:
multipart/form-data
с отдельными струнными частями. При таком подходе отдельные части отправляются с именами type
, answeringRuleId
и binary
.
multipart/form-data
с частью метаданных JSON. В этом подходе часть JSON MIME с именем json
отправляется с полезной нагрузкой, например: {"type": "HoldMusic", "answeringRule": { "id": "12345678" }}
multipart/mixed
Я предпочитаю первый подход (multipart/form-data
с отдельными строковыми частями), потому что его легко использовать с такими инструментами, как cURL и многими HTTP-клиентами.
Вот пример использования Go:
package main
import(
"log"
"net/http"
"net/url"
"os"
"github.com/grokify/gotilla/mime/multipartutil"
"github.com/grokify/oauth2more/ringcentral"
)
func main() {
// Get the Client (*http.Client):
client, err = ringcentral.NewClientPassword(
ringcentral.ApplicationCredentials{
ClientID: os.Getenv("RINGCENTRAL_CLIENT_ID"),
ClientSecret: os.Getenv("RINGCENTRAL_CLIENT_SECRET"),
ServerURL: os.Getenv("RINGCENTRAL_SERVER_URL")},
ringcentral.PasswordCredentials{
Username: os.Getenv("RINGCENTRAL_USERNAME"),
Extension: os.Getenv("RINGCENTRAL_EXTENSION"),
Password: os.Getenv("RINGCENTRAL_PASSWORD")})
if err!=nil {
log.Fatal(err)
}
// Create the HTTP Request (*http.Request)
params := url.Values{}
params.Set("type", "HoldMusic")
params.Set("answeringRuleId", "business-hours-rule")
req, err := multipartutil.NewRequest(
http.MethodPost,
"https://platform.ringcenral.com/restapi/v1.0/account/~/extension/~/greeting",
params,
[]multipartutil.FileInfo{
{
MIMEPartName: "binary",
Filepath: "mygreeting.wav",
},
},
)
// Send the request
resp, err = client.Do(req)
if err != nil {
log.Fatal(err)
}
fmt.Printf("STATUS: %v\n", resp.StatusCode)
}
person
Grokify
schedule
02.01.2020