2016-07-19 1 views
1

안녕하세요. 제 질문을하기 전에 사과 드리겠습니다. 앱 개발에 새로운 것이므로 어떤 질문이라도 정말 어리 석습니다.Instagram api. Swift 3.0에서 access_token을 요청하십시오.

Instagram API를 사용하여 앱을 만들고 있습니다. 처음으로 Xcode에 구현하고 솔직히 말해서 어떻게 작동하는지 잘 모르겠지만 코드를 얻는 데 어려움을 겪었습니다. 인스 타 그램은 웹보기를 사용하여 스위프트로 제공하지만 지금은 터미널 명령을 실행 할 수 있어야한다 :

curl -F 'client_id=CLIENT_ID' \ 
-F 'client_secret=CLIENT_SECRET' \ 
-F 'grant_type=authorization_code' \ 
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \ 
-F 'code=CODE' \ 
https://api.instagram.com/oauth/access_token 

을하지만 그 아이폰에 처리 할 수있게 할 수 있습니까?

아이폰 앱에서 터미널 명령을 실행할 수 있는지 여부를 묻는 질문이 있습니다. 그렇다면 어떻게 할 수 있습니까? 이것에 대한 Swift 또는 Objective-C 코드는 무엇입니까?

감사합니다.

+1

이유는 "터미널 명령"? iOS 에서요? 웹 전화입니다. iOS에서 웹 서비스 호출을 수행하는 방법을 살펴 보았습니까? – Larme

+0

질문에 대해 감사 드리고 싶습니다 (+1 upvote). –

답변

0

터미널은 데스크탑/노트북의 응용 프로그램입니다.

cURL은 데스크톱/랩톱의 도구/라이브러리입니다.



iPhone에서 이들을 설치하여 사용할 수 있습니까?

번호



우리는 같은 일 컬이하는 달성 빠른 코드를 작성할 수 있습니까?

예. cURL 명령은 Instagram에서 제공하는 웹 서비스에 대한 요청을 시작합니다.

일반적으로 웹 요청 및 웹 서비스에 대해 자세히 알아 보려면 google'ing 및 research를 수행해야합니다. 그런 다음 NSURLSession을 사용하거나 SDK를 사용하는 것과 같이 신속하게 수행하는 방법을 살펴보십시오.

2

간단한 http 요청을 보내야합니다. 이 코드를보십시오 :

스위프트 3

let redirectURI = "https://www.instagram.com/" 
    let clientID = "{YOUR_CLIENT_ID}" 
    let clientSecret = "{YOUR_CLIENT_SECRET}" 
    let code = "{RECEIVED_CODE}" 

    let urlString = "https://api.instagram.com/oauth/access_token" 
    let url = NSURL(string: urlString)! 
    let paramString = "client_id=\(clientID)&client_secret=\(clientSecret)&grant_type=authorization_code&redirect_uri=\(redirectURI)&code=\(code)&scope=basic+public_content" 

    let request = NSMutableURLRequest(url: url as URL) 
    request.httpMethod = "POST" 
    request.httpBody = paramString.data(using: String.Encoding.utf8)! 

    let task = URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error) in 
     do { 
      if let jsonData = data { 
       if let jsonDataDict = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: AnyObject] { 
        NSLog("Received data:\n\(jsonDataDict))") 
       } 
      } 
     } catch let err as NSError { 
      print(err.debugDescription) 
     } 
    } 

    task.resume() 

스위프트 2

let redirectURI = "https://www.instagram.com/" 
    let clientID = "{YOUR_CLIENT_ID}" 
    let clientSecret = "{YOUR_CLIENT_SECRET}" 
    let code = "{RECEIVED_CODE}" 

    let urlString = "https://api.instagram.com/oauth/access_token" 
    let url = NSURL(string: urlString)! 
    let paramString = "client_id=\(clientID)&client_secret=\(clientSecret)&grant_type=authorization_code&redirect_uri=\(redirectURI)&code=\(code)&scope=basic+public_content" 

    let request = NSMutableURLRequest(URL: url) 
    request.HTTPMethod = "POST" 
    request.HTTPBody = paramString.dataUsingEncoding(NSUTF8StringEncoding)! 

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in 
     do { 
      if let jsonData = data { 
       if let jsonDataDict = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.AllowFragments) as? [String: AnyObject] { 
        NSLog("Received data:\n\(jsonDataDict))") 
       } 
      } 
      } catch let err as NSError { 
      print(err.debugDescription) 
     } 
    } 

    task.resume()