Twitter APK 只发送 140 个字符?

问题描述 投票:0回答:3

有谁知道 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)
    }
}
swift twitter
3个回答
1
投票

看起来您正在手动调用 Twitter API 端点来获取推文数组,因此您需要将

tweet_mode=extended
参数添加到调用中,以便获取更长的推文(最多 280 个字符)。


1
投票

我建议从一个有点类似的问题中看一下这个答案。 https://stackoverflow.com/a/40429448/8930099

  • 在 iOS 上,无论 URL 的原始长度如何,URL 都计为 23 个字符。
  • 在 iOS 上,无论大小如何,图像都算作 23 个字符。
  • 因此,对于图像和 URL,我们只有 94 个字符 在 iOS 上可用每条推文。并且没有什么可以做的 除非 Twitter 更新他们的 SDK 或者 Apple 更新 SLComposeViewController。

© www.soinside.com 2019 - 2024. All rights reserved.