До IOS 11 вы могли использовать AccountStore для доступа к учетным данным Twitter, чтобы отправлять твиты из приложения, используя что-то вроде приведенного ниже кода, однако Apple это не одобряет.Twitter также sunsetted TwitterKit , что обеспечило обходной путь.Есть ли в 2019 году способ поделиться сообщением из приложения в Twitter (когда у пользователя установлено приложение Twitter на телефоне)?Например, Facebook по-прежнему предоставляет возможность публиковать обновления статуса в Twitter.
func sendTweet(){
let account = ACAccountStore()
let accountType = account.accountTypeWithAccountTypeIdentifier(
ACAccountTypeIdentifierTwitter)
account.requestAccessToAccountsWithType(accountType, options: nil,completion: {(success: Bool, error: NSError!) -> Void in
if success {
let arrayOfAccounts = account.accountsWithAccountType(accountType)
if arrayOfAccounts.count > 0 {
let twitterAccount = arrayOfAccounts.last as! ACAccount
var message = Dictionary<String, AnyObject>()
message["status"] = self.txtPostDesc.text! //textbox
let imageData = UIImagePNGRepresentation(self.imagePost)//pickerview add
let imageString = imageData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions())
message["media_ids"] = imageString
let requestURL = NSURL(string: "https://upload.twitter.com/1/statuses/update_with_media.json")
let postRequest = SLRequest(forServiceType: SLServiceTypeTwitter, requestMethod: SLRequestMethod.POST, URL: requestURL, parameters: message)
postRequest.addMultipartData(imageData, withName: "media", type: nil, filename: nil)
postRequest.account = twitterAccount
postRequest.performRequestWithHandler({(responseData: NSData!,urlResponse: NSHTTPURLResponse!,error: NSError!) -> Void in
if let err = error {
print("Error : \(err.localizedDescription)")
}
print("Twitter HTTP response \(urlResponse.statusCode)")
self.alertShow("successful")
})
}
}
})
}
[1]: https://github.com/twitter/twitter-kit-ios/wiki/Migrating-from-iOS-Social-Framework