Instagram API-使用Swift进行身份验证

本教程将向您介绍Instagram API,并教您如何验证Instagram帐户并检索访问其他端点(例如,获取媒体,喜欢,评论,关系等)所需的ACCESS_TOKEN。尚未使用任何第三方库。

1要使用该API,我们需要在Instagram API平台上注册一个应用程序并接收一个CLIENT ID。 下面的表格显示了该屏幕的外观。 我已经填写了一些虚拟的详细信息,因此在注册您的应用程序时请使用您自己的信息。 所有字段均为必填项。

对于redirect_uri字段,请输入一个有效域,并将其写下来,因为稍后您将需要它。 另外,如果您在使用隐私政策时遇到困难,可以在此处找到示例模板。

2输入所有必需的详细信息后,单击“详细信息”选项卡旁边的“安全性”选项卡,然后取消选中“ 禁用隐式OAuth”。 默认情况下,应选中它,如下所示。 完成后,只需单击注册按钮。

3如果您的应用程序已成功注册,您将被重定向到“管理客户端”屏幕,您可以在其中找到您的客户端信息。 Instagram默认将您的API设为沙盒模式。 这意味着每个访问令牌每小时只能使用500个请求。 如果您想了解有关限制的更多信息,可以在速率限制下找到它。

该限制足以进行测试,但如果要上线,则需要提交生产模式。 为此,Instagram希望您完成您的应用程序,然后录制视频以展示您如何使用其API,然后提交以供审核。 您还需要选择所需的权限。 提交过程类似于Facebook API。 您可以在管理->权限下找到提交表单。

Instagram API平台已完成。 现在让我们做一些编码! 🤓

Instagram没有像Facebook那样为我们提供应用程序登录。 相反,我们需要直接在UIWebView中调用特定的URL,这将打开Instagram登录表单。 然后,用户应输入他的凭据,我们的工作是拦截回调的响应。 这是实现Instagram身份验证的唯一方法。

我不会告诉您如何在界面生成器中添加UIWebView组件,就像我已经知道的那样。 我将只关注代码。 在继续之前,请使用UIWebView组件和IBOutlet创建单独的控制器。

添加常数

首先,我们将常量存储在名为API的结构下。 我更喜欢将所有常量保留在名为Constants.swift的单独文件下

  struct API {static let INSTAGRAM_AUTHURL =“ https://api.instagram.com/oauth/authorize/"static let INSTAGRAM_CLIENT_ID =” YOUR_CLIENT_ID“ static let INSTAGRAM_CLIENTSERCRET =” YOUR_CLIENT_SECRET“ static static INSTAGRAM_REDIRECT_URI =” RAM_ATO_RED “静态让INSTAGRAM_SCOPE =” follower_list + public_content” / *添加您需要的任何范围https://www.instagram.com/developer/authorization/ * /} 

Apple在2017年发布的前4大专辑– App Space

十周年纪念活动是首次在位于苹果新店内的全新史蒂夫·乔布斯剧院举行的活动。

theappspace.com

载入网址

viewDidLoad()中输入以下代码,它将从Instagram调用登录表单。

 让authURL =字符串(格式:“%@?client_id =%@&redirect_uri =%@&response_type = token&scope =%@&DEBUG = True”,参数:[API.INSTAGRAM_AUTHURL,API.INSTAGRAM_CLIENT_ID,API.INSTAGRAM_REDIRECT_URI,API.INSTAGRAM_SCOPE])让urlRequest = URLRequest.init(url:URL.init(string:authURL)!)
 webView.loadRequest(urlRequest) 

获取令牌

我们需要实现shouldStartLoadWith() UIWebViewDelegate方法,在这里我们将拦截access_token。

 扩展ViewController:UIWebViewDelegate {func webView(_ webView:UIWebView,shouldStartLoadWith request:URLRequest,navigationType:UIWebViewNavigationType)-> Bool {return checkRequestForCallbackURL(request:request)}} 

创建了一些帮助程序功能以更好地进行代码组织:

  func checkRequestForCallbackURL(request:URLRequest)-> Bool {让requestURLString =(request.url?.absoluteString)!  as Stringif requestURLString.hasPrefix(API.INSTAGRAM_REDIRECT_URI){让范围:Range  = requestURLString.range(of:“ #access_token =”)!handleAuth(authToken:requestURLString.substring(from:range.upperBound))return false;}返回true} func handleAuth(authToken:String){print(“ Instagram身份验证令牌==”,authToken)} 

checkRequestForCallbackURL()函数将检查URL是否包含带有您的REDIRECT_URI的前缀,然后检索access_token。 我还创建了另一个清理函数,您可以在其中处理自己的访问令牌逻辑。

只需复制并粘贴上面的代码,您就可以开始了! 🚀🚀🚀


就是本教程的内容,如果对您有帮助,请please或分享这个故事,以便其他人可以找到它。 感谢您的关注! 🚀

查看我最新的项目:

App Store上的“VIP体育投注技巧和比分”

此应用程序仅在iOS设备的App Store中可用。 遵循我们的专业BET来增加您的利润…

苹果公司

阅读我在Medium上撰写的更多文章:

引入Clean Swift体系结构(VIP)

立即忘记MVC!

hackernoon.com

使用Swift 4的iOS版Google Maps SDK终极指南

许多iOS应用程序都使用Google Maps。 这是一个非常常见的功能,因此我决定针对…准备最终指南。

medium.freecodecamp.org

SWIFT-带有XIB文件的自定义UIView

使用XIB文件定制UIView是iOS开发中非常普遍的做法。 自定义UIView类不包含XIB文件…

medium.com

如何为您的iOS应用添加Spotlight支持

Swift教程,可让您的应用在Spotlight搜索中可用

hackernoon.com

核心数据关系

了解一对一和一对多关系

hackernoon.com

了解Xcode 9中的自动布局

您需要了解的有关自动版式的所有信息

hackernoon.com

订阅我的时事通讯: