【问题标题】:Twitter APK only sending 140 characters?Twitter APK 只发送 140 个字符?
【发布时间】:2018-06-11 17:24:50
【问题描述】:

有谁知道 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


    【解决方案1】:

    您似乎在手动调用 Twitter API 端点来获取推文数组,因此您需要在调用中添加 tweet_mode=extended 参数才能获取最长 280 个字符的更长推文。

    【讨论】:

    • 太棒了!知道了!此外,JSON 现在称为 full_text。不过有趣的故事:我的表格视图中的第一个结果实际上仍然有一个“......”,我几乎哭了。结果是用户输入了省略号,因为我向下滚动并看到完整长度的条目。
    【解决方案2】:

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

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

    【讨论】:

    • 据我所知,140 个字符仍然是 Tweet 的基本规则。
    猜你喜欢
    • 2014-11-05
    • 2016-02-19
    • 2021-07-03
    • 2021-11-02
    • 2016-05-29
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多