#ios #swift #instagram #instagram-api
Вопрос:
У меня есть приложение для планирования Instagram, и я пытаюсь открыть его (см. Изображение ниже) в Swift 5.x. Цель проста: сохраните изображение в Firebase, как только придет время опубликовать уведомление!, пользователь нажимает на уведомление, и это (изображение ниже) открывается с соответствующим изображением/видео для публикации. Все работает, за исключением открытия Instagram с соответствующим фото/видео. Я уже пробовал это:
func postToInstagram(image: URL) {
let videoFileUrl: URL = image
var localId: String?
PHPhotoLibrary.shared().performChanges({
let request = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: videoFileUrl)
localId = request?.placeholderForCreatedAsset?.localIdentifier
}, completionHandler: { success, error in
// completion handler is called on an arbitrary thread
// but since you (most likely) will perform some UI stuff
// you better move everything to the main thread.
DispatchQueue.main.async {
guard error == nil else {
// handle error
print(error)
return
}
guard let localId = localId else {
// highly unlikely that it'll be nil,
// but you should handle this error just in case
return
}
let url = URL(string: "instagram://library?LocalIdentifier=(localId)")!
guard UIApplication.shared.canOpenURL(url) else {
// handle this error
return
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
})
}
и это:
func postToInstagram(image: URL, igURL: String) {
let urlStr: String = "instagram://app"
let url = URL(string: igURL)
if UIApplication.shared.canOpenURL(url!) {
print("can open")
UIApplication.shared.open(url!, options: [:], completionHandler: nil)
}
}
Безрезультатно. Последний код работает, но открывает только само приложение Instagram, что нормально, но я хотел бы открыть представление на изображении ниже, а не на главном экране Instagram. Я также попытался изменить URL-адрес на «instagram://поделиться», и это работает, но переходит к публикации обычного поста, в то время как я хочу, чтобы пользователь сам решал, что он хочет делать со своим изображением.
Примечание: Для всех, кто будет мне это рассказывать и кто будет задаваться вопросом: Да, мои схемы URL-адресов (LSApplicationQueriesSchemes) в порядке. И, просто чтобы уточнить, мне нужно получить изображение/видео с Firebase, прежде чем публиковать его.
Комментарии:
1. вы обновили
Info.plist
информацию сLSApplicationQueriesSchemes
2. Да! Вот что я имел в виду под схемами URL-адресов
3. Если я не ошибаюсь, вам, возможно, придется использовать API Instagram Graph с разрешением «instagram_content_publish».