串接多種 API 製作Lady Gaga App(Instagram篇)
Published in
3 min readJun 28, 2020
1.畫面截圖:
2.App操作GIF:
3.GitHub連結:
4.程式解說:
取得Json
Peter已經有解說文章,這邊附上連結
使用者API的resource url
https://www.instagram.com/公開帳號的id/?__a=1
用了上面那行code,就能做出使用者的版面、照片牆,還有點擊圖片後有po文內容
除了使用者之外,我有還有找到po文的resource url
https://www.instagram.com/p/po文的shortcode/?__a=1
因為IG的po文有三種型態,分別是GraphImage(圖片),GraphVideo(影片),GrapghSidecar(圖片或影片集合)
其實要串接po文內容,還是用po文的resource url比較理想,但是我的功力不足沒做出來
照片牆
SwiftUI沒有collectionView,所以在照片牆方面會比較麻煩,所以用了function協助
extension Array{
func collection(into size: Int) -> [[Element]]{
return stride(from: 0, to: count, by: size).map{
Array(self[$0 ..< Swift.min($0 + size, count)])
}
}
}
然後在view裡這樣寫
let collec = posts.data.collection(into: 3)return NavigationView{
ForEach(0..<collec.count){ row in HStack{ ForEach(collec[row]){ collecs in NavigationLink(destination: igPostUIView()){ WebImage(url: URL(string: collecs.thumbnail)!)}}}}}
不過之後SwiftUI就會有gridView,所以就不用這麼大費周章了