Twilio 无效的访问令牌签名 (iOS - Swift)
Twilio Invalid Access Token Signature (iOS - Swift)
我使用的是他们今天在 CocoaPods 上发布的 Twilio 最新 SDK。我正在尝试使用 Twilio Programmable Voice 为我的应用程序实现 VOIP 功能。我的后端是 .net,它也使用最新版本的 C# Twilio Helper Library。
我的客户端代码如下:
fetchAccessToken { (accessToken: String) in
TwilioVoice.register(withAccessToken: accessToken, deviceToken: deviceToken) { (error) in
if let error = error {
NSLog("An error occurred while registering: \(error.localizedDescription)")
}
else {
NSLog("Successfully registered for VoIP push notifications.")
}
}
}
我在控制台得到的结果如下:
voipTestWithTwilio[2431:517236] [ERROR TwilioVoice] Inside register:deviceToken:completion:, failed to register for Twilio push notifications. Error:Invalid access token signature
voipTestWithTwilio[2431:517236] An error occurred while registering: Invalid access token signature
这是实际创建令牌的 C# 代码:
var grant = new VoiceGrant
{
OutgoingApplicationSid = outgoingApplicationSid
};
var grants = new HashSet<IGrant> { { grant } };
var token = new Token(
accountSid: accountSid,
signingKeySid: apiKey,
secret: apiSecret,
identity: identity,
grants: grants
);
return token.ToJwt();
我一直在网上寻找这个问题,到目前为止没有任何帮助。我曾尝试联系他们,但没有得到任何回复。我还尝试在 Twilio 上创建新的 api 密钥甚至新项目几次。有人能谈谈这个问题吗?
更新
我向 VoiceGrant 添加了推送通知 sid,现在我收到了 403 Forbidden。
在 Twilio error codes page 上,它被解释为:“访问令牌中提供的到期时间超过了允许的最大持续时间。”这绝对不是我的情况。但是,我尝试在 Token
构造函数中传递具有各种值的过期参数,但结果没有改变。
问题仍然存在。
我解决了这个问题。这是因为我的服务器返回了带引号的令牌。
我记得在客户端 (iOS) 上打印 (token)'ing 以查看是否存在编码问题或其他问题,我所看到的只是引号之间的正确标记。由于 token 是一个字符串值,我没有注意它的引号部分。那是我错的地方。
我使用的是他们今天在 CocoaPods 上发布的 Twilio 最新 SDK。我正在尝试使用 Twilio Programmable Voice 为我的应用程序实现 VOIP 功能。我的后端是 .net,它也使用最新版本的 C# Twilio Helper Library。
我的客户端代码如下:
fetchAccessToken { (accessToken: String) in
TwilioVoice.register(withAccessToken: accessToken, deviceToken: deviceToken) { (error) in
if let error = error {
NSLog("An error occurred while registering: \(error.localizedDescription)")
}
else {
NSLog("Successfully registered for VoIP push notifications.")
}
}
}
我在控制台得到的结果如下:
voipTestWithTwilio[2431:517236] [ERROR TwilioVoice] Inside register:deviceToken:completion:, failed to register for Twilio push notifications. Error:Invalid access token signature
voipTestWithTwilio[2431:517236] An error occurred while registering: Invalid access token signature
这是实际创建令牌的 C# 代码:
var grant = new VoiceGrant
{
OutgoingApplicationSid = outgoingApplicationSid
};
var grants = new HashSet<IGrant> { { grant } };
var token = new Token(
accountSid: accountSid,
signingKeySid: apiKey,
secret: apiSecret,
identity: identity,
grants: grants
);
return token.ToJwt();
我一直在网上寻找这个问题,到目前为止没有任何帮助。我曾尝试联系他们,但没有得到任何回复。我还尝试在 Twilio 上创建新的 api 密钥甚至新项目几次。有人能谈谈这个问题吗?
更新
我向 VoiceGrant 添加了推送通知 sid,现在我收到了 403 Forbidden。
在 Twilio error codes page 上,它被解释为:“访问令牌中提供的到期时间超过了允许的最大持续时间。”这绝对不是我的情况。但是,我尝试在 Token
构造函数中传递具有各种值的过期参数,但结果没有改变。
问题仍然存在。
我解决了这个问题。这是因为我的服务器返回了带引号的令牌。
我记得在客户端 (iOS) 上打印 (token)'ing 以查看是否存在编码问题或其他问题,我所看到的只是引号之间的正确标记。由于 token 是一个字符串值,我没有注意它的引号部分。那是我错的地方。