Как я могу загружать изображения в Slack в приложении iOS? - PullRequest
0 голосов
/ 09 июля 2020

Я хочу загрузить изображения в Slack в моем приложении iOS. Пользователи могут загружать изображения из своего фото-приложения, а приложение загружать их в канал Slack.

Я пробовал следующее.

Alamofire 5.2

if let imageData = presenter.images[0].jpegData(compressionQuality: 0.1) {
    AF.upload(multipartFormData: { multipartFormData in
        multipartFormData.append("xoxb-MySlackToken".data(using: .utf8)!, withName: "token")
        multipartFormData.append("MyChannel".data(using: .utf8)!, withName: "channels")
        multipartFormData.append(imageData, withName: "file", fileName: "testFile.jpeg", mimeType: "image/jpeg")
    }, to: "https://slack.com/api/files.upload", method: .post)
    .response { response in
        debugPrint(response)
    }
}

Но Я получаю следующую ошибку:

[Request]: POST https://slack.com/api/files.upload
[Request Body]: 
None
[Response]: 
nil
[Response Body]: 
None
[Data]: None
[Network Duration]: 0.17436504364013672s
[Serialization Duration]: 0.0s
[Result]: failure(Alamofire.AFError.sessionTaskFailed(error: Error Domain=NSPOSIXErrorDomain Code=100 "Protocol error" UserInfo={_NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <17C16CC4-8293-4717-84DB-64F040B757FD>.<1>, _kCFStreamErrorDomainKey=1, NSErrorPeerAddressKey=<CFData 0x600000d81950 [0x7fff8062d610]>{length = 16, capacity = 16, bytes = 0x100222b87f0000010000000000000000}, _kCFStreamErrorCodeKey=100, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalUploadTask <17C16CC4-8293-4717-84DB-64F040B757FD>.<1>"
)}))

Почему мой код вызывает эту ошибку? Я думаю, что ошибка моего случая imageData, но я не понял

Следующий curl дает тот успех, которого я хотел.

curl -x localhost:8888 -XPOST "https://slack.com/api/files.upload" \
    -H "Content-Type: multipart/form-data" \
    -F file=@sample_image.jpg \
    -F token=MySlackToken \
    -F channels=MyChannel \

Пожалуйста, помогите мне в этом вопросе.

...