有谁知道 iOS 版 TwitterKit 是否仍然只获取 140 个字符的推文而不是更新后的计数?我将文本放入具有动态属性的 UILabel 中,该属性应该自行调整大小,但我仍然收到被截断的推文。
为了更好奇,我还使用以下代码来获取 JSON:
public func fetchTweets(_ handler: @escaping ([Tweet]) -> Void) {
fetch { results in
var tweets = [Tweet]()
var tweetArray: NSArray?
if let dictionary = results as? NSDictionary {
if let tweets = dictionary[TwitterKey.tweets] as? NSArray {
tweetArray = tweets
} else if let tweet = Tweet(data: dictionary) {
tweets = [tweet]
}
} else if let array = results as? NSArray {
tweetArray = array
}
if tweetArray != nil {
for tweetData in tweetArray! {
if let tweet = Tweet(data: tweetData as? NSDictionary) {
tweets.append(tweet)
}
}
}
handler(tweets)
}
}
public func fetch(_ handler: @escaping (PropertyList?) -> Void) {
performTwitterRequest("GET", handler: handler)
}
func performTwitterRequest(_ method: String, handler: @escaping (PropertyList?) -> Void) {
Twitter.sharedInstance().sessionStore.session()?.userID {
let client = TWTRAPIClient()
let jsonExtension = (self.requestType.range(of: Constants.JSONExtension) == nil) ? Constants.JSONExtension : ""
let url = "\(Constants.twitterURLPrefix)\(self.requestType)\(jsonExtension)"
var clientError : NSError?
let request = client.urlRequest(withMethod: method, url: url, parameters: parameters, error: &clientError)
sendTwitterRequest(client: client, request: request, handler: handler)
}
func sendTwitterRequest(client: TWTRAPIClient, request: URLRequest, handler: @escaping (PropertyList?) -> Void) {
client.sendTwitterRequest(request) { (response, responseData, error) -> Void in
if let err = error {
print("Error: \(err.localizedDescription)")
}
var propertyListResponse: PropertyList?
if responseData != nil {
propertyListResponse = try? JSONSerialization.jsonObject(with: responseData!, options: .mutableLeaves)
if propertyListResponse == nil {
let error = "Couldn't parse JSON response."
self.log(error)
propertyListResponse = error
}
} else {
let error = "No response from Twitter."
self.log(error)
propertyListResponse = error
}
self.synchronize {
self.captureFollowonRequestInfo(propertyListResponse)
}
handler(propertyListResponse)
}
}
看起来您正在手动调用 Twitter API 端点来获取推文数组,因此您需要将
tweet_mode=extended
参数添加到调用中,以便获取更长的推文(最多 280 个字符)。
我建议从一个有点类似的问题中看一下这个答案。 https://stackoverflow.com/a/40429448/8930099