首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Clickatell:集成API密钥无效或丢失

Clickatell:集成API密钥无效或丢失
EN

Stack Overflow用户
提问于 2016-11-22 16:02:40
回答 3查看 1.6K关注 0票数 2
代码语言:javascript
运行
复制
using (var httpClient = new HttpClient())
{
    httpClient.BaseAddress = new Uri("https://platform.clickatell.com/");

    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "wyOtm7-eRq-dSHWORr6hfw==");

    var stringContent = new StringContent("{\"content\":\"Test Message\",\"to\":[\"61400000000\"]}");
    stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

    var httpResponseMessage = AsyncHelper.RunSync(() => httpClient.PostAsync("messages", stringContent));

    var result = httpResponseMessage.Content.ReadAsStringAsync().Result;
}

结果为:{"messages":[],“error”:“集成API密钥无效或丢失。- "}

但我的API密钥与Clickatell定义的完全相同。

附加信息: Clickatell站点显示以下Json curl调用(注意:我无法让curl工作来测试它)。

代码语言:javascript
运行
复制
CURL CALL:
==========
curl -i \
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: wyOtm7-eRq-dSHWORr6hfw==" \
-d '{"content": "Test Message Text", "to": ["61400000000"], "from": "+1234567890"}' \
-s https://platform.clickatell.com/messages

唯一的区别是我将我的令牌指定为持有者令牌。如果没有它,我会得到一个格式异常。

感谢任何可能对我的问题有所了解的人。

EN

回答 3

Stack Overflow用户

发布于 2017-02-27 18:13:52

手动测试接口的

您可以使用Google Chrome的Postman应用程序进行查看

步骤:-

postman)

  • Create

  • Go安装邮递员(转到谷歌chrome应用程序部分搜索postman)

  • Create one

  • 选择方法作为POST

将此URL键添加到标题部分并添加标题

  • ADD Key = Content-Type,value = application/json

  • Add Authorization =Accepte222>,value =application/json

  • Add Key =Authorization,Accept=将您的API Key

  • Go选择到正文部分

  • as

  • 在contant中添加以下内容

{ "content":“测试消息”,"to":"+919999999999“}

  • 单击send

  • ,您将找到相应的响应。

通过以上步骤,您还可以手动测试您的接口。

票数 2
EN

Stack Overflow用户

发布于 2016-11-22 20:06:58

我想我已经想好了。看起来我需要使用一个无效的授权头。

代码语言:javascript
运行
复制
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "xxxxxxxxxxxxxxxxxxxxxx==");
票数 1
EN

Stack Overflow用户

发布于 2017-02-27 17:54:40

要解决此问题,请执行以下步骤:

  1. 单击电话帐户登录到您。
  2. 转到短信集成(左侧菜单)。
  3. 选择(单击)您的集成名称。
  4. 您将看到紧跟API键的续订按钮。
  5. 单击续订按钮,它将续订您的API键。H210H111现在保存或发布您的短信集成确保您的短信集成处于活动模式。(您可以从短信集成(左侧菜单)状态选项卡中更改状态)

创建一个实体(名称: OTPRequestEntity)

代码语言:javascript
运行
复制
public class OTPRequestEntity
{
    [JsonProperty("content")]
    public string content { get; set; }

    [JsonProperty("to")]
    public List<string> to { get; set; }
}

转到您的代码并添加标题:-

代码语言:javascript
运行
复制
OTPResponseEntity entOTPResponseEntity = new OTPResponseEntity();
List<string> numbers = new List<string>();
numbers.Add("Your Mobile Number");
string apiBaseAddress = "https://platform.clickatell.com";
var objHttpClient = new HttpClient();
objHttpClient.BaseAddress = new Uri(apiBaseAddress);
objHttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
objHttpClient.DefaultRequestHeaders.Add(HttpRequestHeader.ContentType.ToString(), "application/json");
objHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Your API Key");
var vendRequest = new OTPRequestEntity
{
    content = "Your Message.",
    to = numbers
};
HttpResponseMessage apioresponse = await objHttpClient.PostAsJsonAsync("/messages", vendRequest).ConfigureAwait(false);
apioresponse.EnsureSuccessStatusCode();
if (apioresponse.StatusCode == HttpStatusCode.Accepted)
{
    string responseString = await apioresponse.Content.ReadAsStringAsync().ConfigureAwait(false);
    entOTPResponseEntity = JsonConvert.DeserializeObject<OTPResponseEntity>(responseString);
}

entOTPResponseEntity对象中,您将获得接口响应

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40736602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档