2016-09-05 8 views
2

以前私はこのようなアクセスしようとしました:Swift 3のFacebook APIでプロフィール画像にアクセスするには?

let gr2 : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id,picture.width(198).height(198)"]) 
gr2.start(completionHandler: { (connection, result2, error) -> Void in     
let data = result2 as! [String : AnyObject] 
let _loggedInUserSettingRecordName = data["id"] as? String // (forKey: "id") as? String 
let profilePictureURLStr = data["picture.data.url"] as? String 

しかしprofilePictureURLStrは今nilです。 Swift 3とは何が違うのですか?

(lldb) po result2 
▿ Optional<Any> 
    ▿ some : 2 elements 
    ▿ 0 : 2 elements 
     - .0 : id 
     - .1 : 10208273026137463 
    ▿ 1 : 2 elements 
     - .0 : picture 
     ▿ .1 : 1 element 
     ▿ 0 : 2 elements 
      - .0 : data 
      ▿ .1 : 4 elements 
      ▿ 0 : 2 elements 
       - .0 : is_silhouette 
       - .1 : 0 
      ▿ 1 : 2 elements 
       - .0 : height 
       - .1 : 200 
      ▿ 2 : 2 elements 
       - .0 : url 
       - .1 : https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/13418946_10208553701714177_3969269576626117653_n.jpg?oh=add39246ec9693ecead0529ecbbbfc53&oe=5862D7ED 
      ▿ 3 : 2 elements 
       - .0 : width 
       - .1 : 200 
+0

'id'を取得できますか? –

+0

はい、idは動作します、 'data [" picture "]'、 'data [" picture.data "]'は無しですが、 'data [" picture "]![" data "]!'は何かを返す –

+0

、それは厄介ですが、動作します。 :) –

答えて

3
私は多くの可能性を試してみました

、およびURLを取得することができますこの方法:私はURL情報を見ることができます

はその一部である

let profilePictureURLStr = (data["picture"]!["data"]!! as! [String : AnyObject])["url"] 
0

また、この方法は、スウィフト3で動作します。

if let picture = data["picture"] as? Dictionary<String,Any> { 
         if let data = picture["data"] as? Dictionary<String,Any> { 
          if let pictureUrl = data["url"] as? String { 
           dict["remote_main_image_url"] = pictureUrl 
          } 
         } 
        } 
関連する問題