请求失败:fabric twitterkit 被禁止 (403)
Request failed: forbidden (403) for fabric twitterkit
我正在尝试使用 iOS 的 TwitterKit API 提取列表的成员。据我所知,这样做可以让我 "guest-authenticated" 绕过对个人消费者和消费者密钥的需求。
下面的代码尝试使用 this REST endpoint
获取列表的成员
let client = TWTRAPIClient()
let endpoint = "https://api.twitter.com/1.1/lists/members.json"
let params = ["owner_screen_name" : "palafo", "slug" : "breakingnews"]
var clientError : NSError?
let request = client.URLRequestWithMethod("GET", URL: endpoint, parameters: params, error: &clientError)
client.sendTwitterRequest(request) { (response, data, connectionError) -> Void in
if connectionError != nil {
print("Error: \(connectionError)")
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
print("json: \(json)")
} catch let jsonError as NSError {
print("json error: \(jsonError.localizedDescription)")
}
}
运行 给我这个错误:
Error Domain=TwitterAPIErrorDomain Code=220 "Request failed: forbidden (403)" UserInfo={NSLocalizedFailureReason=Twitter API error : Your credentials do not allow access to this resource (code 220), TWTRNetworkingStatusCode=403, NSErrorFailingURLKey=https://api.twitter.com/1.1/lists/members.json?owner_screen_name=palafo&slug=breakingnews, NSLocalizedDescription=Request failed: forbidden (403)})
如果我更改 endpoint
以使用 this other REST endpoint 获取该列表中的状态,我会得到正确的 JSON 响应。
let endpoint = "https://api.twitter.com/1.1/lists/statuses.json"
这是否意味着 Fabric 的访客身份验证不允许我获取列表的成员?
我通过使用 clientWithUserId 而不是仅使用 init 进行初始化来解决我的问题。
NSString *userID = [Twitter sharedInstance].sessionStore.session.userID;
TWTRAPIClient *client = [[TWTRAPIClient alloc] initWithUserID:userID];
我正在尝试使用 iOS 的 TwitterKit API 提取列表的成员。据我所知,这样做可以让我 "guest-authenticated" 绕过对个人消费者和消费者密钥的需求。
下面的代码尝试使用 this REST endpoint
获取列表的成员let client = TWTRAPIClient()
let endpoint = "https://api.twitter.com/1.1/lists/members.json"
let params = ["owner_screen_name" : "palafo", "slug" : "breakingnews"]
var clientError : NSError?
let request = client.URLRequestWithMethod("GET", URL: endpoint, parameters: params, error: &clientError)
client.sendTwitterRequest(request) { (response, data, connectionError) -> Void in
if connectionError != nil {
print("Error: \(connectionError)")
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
print("json: \(json)")
} catch let jsonError as NSError {
print("json error: \(jsonError.localizedDescription)")
}
}
运行 给我这个错误:
Error Domain=TwitterAPIErrorDomain Code=220 "Request failed: forbidden (403)" UserInfo={NSLocalizedFailureReason=Twitter API error : Your credentials do not allow access to this resource (code 220), TWTRNetworkingStatusCode=403, NSErrorFailingURLKey=https://api.twitter.com/1.1/lists/members.json?owner_screen_name=palafo&slug=breakingnews, NSLocalizedDescription=Request failed: forbidden (403)})
如果我更改 endpoint
以使用 this other REST endpoint 获取该列表中的状态,我会得到正确的 JSON 响应。
let endpoint = "https://api.twitter.com/1.1/lists/statuses.json"
这是否意味着 Fabric 的访客身份验证不允许我获取列表的成员?
我通过使用 clientWithUserId 而不是仅使用 init 进行初始化来解决我的问题。
NSString *userID = [Twitter sharedInstance].sessionStore.session.userID;
TWTRAPIClient *client = [[TWTRAPIClient alloc] initWithUserID:userID];