我正在创建一个Alexa技能,该技能将在Twitter上读取用户的直接消息并更新其状态。为此,用户必须将他们的Twitter帐户链接到该技能。一切都很好,因为链接成功并返回Access Token
。问题是仅返回Access Token
而不是Access Token Secret
(这是我更新用户状态,阅读消息等所必需的)我做了一些搜索偶然发现this page on Rules以及以下示例:
function(user, context, callback) {
// request below is specific to Twitter
if (context.connectionStrategy !== 'twitter') {
return callback(null, user, context);
}
...
var twitterIdentity = _.find(user.identities, { connection: 'twitter' });
var oauthToken = twitterIdentity.access_token;
var oauthTokenSecret = twitterIdentity.access_token_secret;
问题是,上面提到的页面似乎特定于JS,这是有问题的,因为我的Alexa Skill是用Java编写的。有没有办法在Java中使用Auth0来访问Access Token Secret
?
这是我用来确认我确实拥有Access Token
:
@Override
public Optional<Response> handle(HandlerInput handlerInput) {
String accessToken = handlerInput.getRequestEnvelope()
.getContext()
.getSystem()
.getUser()
.getAccessToken();
// Have we authenticated the user? If not, display a card asking
// them to link their account and end this session
if (accessToken == null) {
return handlerInput.getResponseBuilder()
.withLinkAccountCard()
.withSpeech("Please login to your Twitter account")
.build();
}
...
}
还应该注意我正在使用Twitter4j