2016-05-08 15 views
6

Tôi đang cố truy xuất hình ảnh từ trang facebook. Tôi đã truy xuất ID trang và giờ tôi cần sử dụng ID này để lấy hình ảnh từ trang. Tôi đang sử dụng mã sau:Trang Facebook trả về giá trị rỗng trong FBSDKGraphRequest

let pictureRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: picPath, parameters: ["fields" : "data"], HTTPMethod: "GET") 
          pictureRequest.startWithCompletionHandler({ (connection: FBSDKGraphRequestConnection!, result, error) -> Void in 
           if (error != nil) { 
            print("picResult: \(result)") 
           } else { 
            print(error!) 
           } 
          }) 

Tôi không gặp lỗi, nhưng kết quả của tôi không có. Picpath trông giống như sau:

/110475388978628/picture 

Tôi đã sao chép mã trực tiếp từ here nhưng không hoạt động. Bất kỳ ý tưởng gì tôi đang làm sai? Tôi có mã thông báo truy cập vì tôi có thể lấy ID trang thông qua yêu cầu biểu đồ

Trả lời

1

không có tham số nào được gọi là "trường". thay thế [ "lĩnh vực": "data"] với nil

let pictureRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: picPath, parameters: nil, HTTPMethod: "GET") 
          pictureRequest.startWithCompletionHandler({ (connection: FBSDKGraphRequestConnection!, result, error) -> Void in 
           if (error != nil) { 
            print("picResult: \(result)") 
           } else { 
            print(error!) 
           } 
          }) 
1

Bạn có thể sử dụng công cụ API explorer Graph để giúp xây dựng các yêu cầu đồ đầu tiên: https://developers.facebook.com/tools/explorer

Trong trường hợp này, bạn sẽ thấy rằng bạn muốn con đường đồ thị để thể chỉ là đối tượng id (ví dụ, bạn picPath nên chỉ 110475388978628 và các thông số của bạn nên được [ "fields" : "picture"].

Sau đó, bạn sẽ muốn phân tích "url" out of the result["picture"]["data"]["url"].

2

Nếu bạn muốn nhận được hình ảnh trong cùng một yêu cầu như phần còn lại của thông tin người dùng, bạn có thể làm tất cả trong một yêu cầu biểu đồ.

let request = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email, picture.type(large)"]) 
request.startWithCompletionHandler({ (connection, result, error) in 
    let info = result as! NSDictionary 
    if let imageURL = info.valueForKey("picture")?.valueForKey("data")?.valueForKey("url") as? String { 
     //Download image from imageURL 
    } 
}) 
Các vấn đề liên quan