2017-07-10 5 views
0

私はfacebookから私のアプリにユーザーの写真を取りたいです。私はグラフAPIフォームを使っています。このパラメータでは、有効なアクセストークンも渡しています。アクティブなアクセストークンを使用して、現在のユーザーに関する情報を照会する必要があります。 Facebook Graph API

しかし、私は取得していますエラー:

"Access-Control-Allow-Origin" = "*"; 
"Cache-Control" = "no-store"; 
"Content-Encoding" = gzip; 
"Content-Length" = 157; 
"Content-Type" = "application/json; charset=UTF-8"; 
Date = "Mon, 10 Jul 2017 08:01:35 GMT"; 
Expires = "Sat, 01 Jan 2000 00:00:00 GMT"; 
Pragma = "no-cache"; 
Vary = "Accept-Encoding"; 
"Www-Authenticate" = "OAuth \"Facebook Platform\" \"invalid_request\" \"An active access token must be used to query information about the current user.\""; 

コード:

func fetchPhotos(_ accessToken : String) 
{ 

    let url = NSURL(string : "https://graph.facebook.com/me/photos") 
    let request = NSMutableURLRequest(url: url as! URL) 
    request.httpMethod = "GET" 
    let params = ["access_token" : accessToken] 
    do 
    { 
     request.httpBody = try JSONSerialization.data(withJSONObject: params, options: []) 

    } 
    catch 

    { 
     print("Error") 
    } 
    let config = URLSessionConfiguration.default 
    let session = URLSession(configuration: config) 

    let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in 

    print(response) 

    }); 
    task.resume() 

} 

どのように私はaccessTokenを取得しています:あなたがアプリを使用しているよう

func getAccessToken(completion : @escaping (_ atoken : String?) ->()) 
{ 
    let url = NSURL(string : "https://graph.facebook.com/oauth/access_token?client_id=9621*******9&client_secret=********40a2abeae6****a199&grant_type=client_credentials") 
    let request = NSMutableURLRequest(url: url as! URL) 
    let config = URLSessionConfiguration.default 
    let session = URLSession(configuration: config) 

    let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in 
     do 
     { 
      let resultDict = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) 
      let accessToken = (resultDict as! [String : String])["access_token"]! 
      completion(accessToken) 
     } 
     catch 
     { 
      completion(nil) 
     } 
    }); 
    task.resume() 


} 

答えて

0

が見えますアクセストークン。代わりにユーザーアクセストークンを使用してください。

+0

私のアクセストークンは、以下の方法で取得しています: 'FBSDKAccessToken.current()。tokenString!' –

関連する問題

 関連する問題