Instagram api。在Swift 3.0中请求access_token

时间:2016-07-19 10:08:12

标签: ios swift xcode terminal instagram

嗨,所以在我问我的问题之前,我想道歉,因为我是应用程序开发的新手,很抱歉,如果有任何问题真的很愚蠢。

所以我正在使用Instagram API创建一个应用程序,这是我第一次将其应用到Xcode中并且说实话我不太确定它是如何工作的但是我已经设法通过获取代码来努力Instagram使用Web View向Swift提供,但现在我需要能够运行终端命令:

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

但是有可能在iPhone上进行处理吗?

我想问的是你是否可以在iPhone Apps上运行终端命令,如果是这样,我怎么能这样做?什么是Swift或Objective-C代码呢?

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要发送简单的http请求。试试这段代码:

  

Swift 3

    System.out.print("Hello. Please enter the number of people: ");

    int people = scan.nextInt();

    String[] myPeople = new String[people + 1];

    System.out.println("Enter the name of each person:");
    for(int i = 0; i < myPeople.length; i++)    

    {       
        myPeople[i] = scan.nextLine();                  
    }


    for(String peoples : myPeople)
    {   
        System.out.println(peoples);         
    }
  

Swift 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 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()

答案 1 :(得分:0)

终端是桌面/笔记本电脑上的应用程序。

cURL是桌面/笔记本电脑上的工具/库。



iPhone可以安装和使用这些吗?

没有



我们可以编写快速代码来实现cURL所做的一样吗?

是。 cURL命令正在向Instagram提供的Web服务发出请求。

您需要进行相当多的谷歌搜索和研究,以了解有关网络请求和网络服务的更多信息。然后研究如何在swift中执行此操作,例如使用NSURLSession或使用SDK。