串接多種 API 製作Lady Gaga App(Instagram篇)

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,所以就不用這麼大費周章了

--

--