我正在尝试在我的应用中使用直接消息。我能够很好地发布DM,但是当我尝试从端点https://api.twitter.com/1.1/direct_messages.json获取它时,它返回401 - 未经授权。我真的不明白我是如何被授权发送DM而不是发送给我的。
以下是我最初的身份验证方式:
if Twitter.sharedInstance().sessionStore.session() == nil {
Twitter.sharedInstance().logInWithCompletion { session, error in
if (session != nil) {
// successfully logged in, call loading functions
} else {
print("error: \(error!.localizedDescription)")
}
}
} else {
// already logged in, call loading functions
}
每次使用REST API发出请求时,都会以
开头if let userID = Twitter.sharedInstance().sessionStore.session()?.userID {
let client = TWTRAPIClient(userID: userID)
客户端在DM的POST和GET请求中以相同的方式初始化,但GET请求失败。
就权限而言,我已根据Twitter检查它是否具有读/写/ DM访问权限,并且成功请求返回"x-access-level" = "read-write-directmessages";
,因此我认为它已正确设置。
我有点担心我可能没有正确认证,因为Twitter的文档经历了O-Auth的3个步骤,而我所做的就是告诉Twitter单身人士只是记录在...但我通过假设这些步骤都在logInWithCompletion函数中执行来使其合理化。此外,如果我没有正确认证,我肯定无法发送DM,对吗?
关于如何解决此问题的任何想法?我很新,所以它可能是美好而简单的!我已经查看了其他一些问题,但他们似乎都在全面编写请求,而不是使用这些内置方法 - 或者我把它弄错了?
答案 0 :(得分:0)
是的,这是一个愚蠢的问题 - 我把参数留空了,因为它们都标记为'可选' - 如同,["" :""]。我只是将请求中的参数设置为nil,现在它可以工作了。