ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Automatisch 接入 Flickr 连接配置全指南:从 API 应用创建到 OAuth 授权与源码实现解析

Automatisch 接入 Flickr 连接配置全指南:从 API 应用创建到 OAuth 授权与源码实现解析 Automatisch 接入 Flickr 连接配置全指南从 API 应用创建到 OAuth 授权与源码实现解析【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatischAutomatisch 是一个开源的工作流自动化平台可视为 Zapier 的开源替代品Flickr 是平台内置的 App 之一。本篇指南完整讲解在 Automatisch 中建立 Flickr 连接的全流程先在 Flickr 开发者后台创建 API 应用、获取密钥再回到 Automatisch 填入凭据并完成 OAuth 授权最后结合 Flickr App 源码 逐段解析认证链路与触发器的底层实现。读完本文你将能够在自己的 Automatisch 实例上独立完成 Flickr 连接配置并理解其 OAuth 1.0a 握手、凭据校验与轮询触发机制。前置条件与核心概念在开始配置前你需要满足以下条件一个可用的Flickr 账号一台已运行 Automatisch 实例的环境安装方式可参考 guide/installation.md对 OAuth 授权流程有基本认识Flickr 采用的是 OAuth 1.0a 协议。Flickr App 在 Automatisch 中的元信息定义在 packages/backend/src/apps/flickr/index.js从中可以看到几个关键事实App key 为flickr支持连接supportsConnections: trueAPI 基础地址为https://www.flickr.com/servicesOAuth 相关的request_token、authorize、access_token端点都挂在services/oauth/*路径下认证文档地址指向{DOCS_URL}/apps/flickr/connection即本篇文章所对应的文档所有对外请求都会经过beforeRequest: [addAuthHeader]钩子注入 OAuth 签名头。第一步在 Flickr 开发者后台创建 API 应用整个配置流程的起点是到 Flickr 的 API 应用注册页面申请应用凭据。官方操作入口为 https://www.flickr.com/services/apps/create/按以下步骤操作打开上述链接点击Request an API key申请 API 密钥选择申请non-commercial key非商业用途密钥填写What is the name of your app?应用名称字段填写What are you building?应用用途描述字段勾选页面要求的各项声明复选框点击Submit提交申请。申请通过后页面会展示一对关键凭据Key即 OAuth 中的 Consumer Key消费者密钥标识Key Secret即 OAuth 中的 Consumer Secret消费者密钥密文。请务必将这两个值复制并妥善保存第 12 步需要用到它们。第二步配置 Flickr 应用的 Callback URLFlickr 使用 OAuth 1.0a 协议该协议要求应用必须登记一个Callback URL回调地址OAuth 授权完成后 Flickr 会将用户重定向回该地址。在 Flickr 后台点击Edit auth flow for this app编辑此应用的认证流程然后回到 Automatisch 的 Flickr 连接添加页面复制页面展示的OAuth Redirect URL将该 URL 粘贴到 Flickr 的Callback URL字段点击Save changes保存。OAuth Redirect URL 是什么这个字段并非随机生成而是由 Automatisch 根据当前部署地址动态注入的。在 auth/index.js 的字段定义中可以看到其默认值模板{WEB_APP_URL}/app/flickr/connections/add其中{WEB_APP_URL}是 Automatisch 部署时配置的 Web 前端地址占位符由系统渲染为实际 URL。该字段在配置界面中为只读readOnly: true并支持一键复制clickToCopy: true官方字段描述原文为When asked to input an OAuth callback or redirect URL in Flickr OAuth, enter the URL above.当 Flickr OAuth 要求输入回调或重定向 URL 时填入上方 URL。第三步在 Automatisch 中填写凭据并建立连接回到 Automatisch 的 Flickr 连接添加页面完成最后的凭据填入与授权将第 8 步保存的Key填入 Automatisch 的Consumer Key字段将第 8 步保存的Key Secret填入 Automatisch 的Consumer Secret字段点击Submit提交。提交后 Automatisch 会启动 OAuth 授权流程引导你在 Flickr 登录并授权该应用访问你的账号。授权完成后Flickr 连接即建立成功此后便可在工作流中基于该连接使用 Flickr 的触发器与动态数据了。三个配置字段的语义汇总字段类型必填是否只读说明OAuth Redirect URLstring是是回填到 Flickr 后台 Callback URL 字段值为{WEB_APP_URL}/app/flickr/connections/addConsumer Keystring是否Flickr 应用注册后获得的 KeyConsumer Secretstring是否Flickr 应用注册后获得的 Key Secret源码视角Automatisch 的 Flickr OAuth 认证链路是如何运转的文档步骤背后是 packages/backend/src/apps/flickr/auth/ 目录下四个模块的协作理解这条链路有助于在配置出错时快速定位问题。1. 生成授权 URLgenerate-auth-url.jsgenerate-auth-url.js 实现 OAuth 1.0a 的第一步——获取临时 Request Token从当前字段中读取oAuthRedirectUrl作为回调地址向{apiBaseUrl}/oauth/request_token发起 POST 请求携带oauth_callback参数解析响应中的oauth_token与oauth_token_secret构造授权 URL{apiBaseUrl}/oauth/authorize?oauth_token...permsdelete并连同临时凭据一起写入认证上下文。注意permsdelete参数这意味着授权时申请的权限级别为可删除即该连接后续可代表用户执行含删除语义的 API 操作这是官方默认的权限策略。2. 校验凭据并换取最终 Tokenverify-credentials.jsverify-credentials.js 实现 OAuth 的第三步——用验证码换取长效 Access Token向/oauth/access_token发送 POST 请求携带oauth_verifier用户在 Flickr 授权页确认后返回的验证码与临时oauth_token解析响应将oauth_token/oauth_token_secret此时已是正式 Token、user_nsidFlickr 用户唯一 ID与fullname昵称持久化到认证数据中。其中user_nsid会被后续所有轮询触发器与动态数据用作user_id参数是连接身份的关键标识。3. 连接可用性检测is-still-verified.jsis-still-verified.js 用于校验连接是否仍然有效它调用 Flickr 的flickr.test.login接口以formatjsonnojsoncallback1返回裸 JSON只要能取回user.id即判定连接有效。如果用户的 Token 被吊销或账号被删除该检测会失败并在 Automatisch 中标记连接失效。4. OAuth 签名与请求头注入common 目录oauth-client.js 基于oauth-1.0a库构造 OAuth 客户端使用HMAC-SHA1签名算法signature_method: HMAC-SHA1以consumerKey/consumerSecret作为消费者凭据add-auth-header.js 作为beforeRequest钩子在每次请求前执行使用当前连接的accessToken/accessSecret对请求进行签名并写入Authorization头同时按 Flickr 对第三方应用的要求设置User-Agent头格式为web:automatisch:{版本号} (by {screenName})未取得昵称时省略括号部分。连接建立后可用的触发器与动态数据Flickr 连接配置完成后即可在 Automatisch 的工作流编辑器中选用。Flickr App 提供了 4 个轮询触发器定义在 triggers/index.js与 triggers.md 中列出的能力一一对应触发器触发时机轮询间隔New albums创建了新相册photoset时15 分钟New favorite photos收藏了新的照片时15 分钟New photos添加了新照片时15 分钟New photos in album在指定相册中添加了新照片时15 分钟以 new-photos/index.js 与 new-photos.js 为例其实现要点包括轮询间隔由defineTrigger({ pollInterval: 15 })声明单位分钟调用flickr.photos.search接口并按page分页拉取单页per_page: 500直到翻完pages为止通过extras参数一次性请求 27 个照片扩展字段含description、tags、geo、views及url_s~url_o全套缩略图/原图 URL方便下游步骤直接引用每个触发项以照片id作为internalId去重避免重复执行同一触发项。New photos in album 触发器还依赖动态数据其Album下拉参数通过getDynamicData指向 list-albums该模块调用flickr.photosets.getList拉取用户全部相册同样按 500/页分页聚合并以相册 ID 相册标题的形式渲染为下拉选项。常见问题与排查建议申请非商业密钥被拒Flickr 对非商业密钥的申请用途描述有审核要求请如实填写应用用途如需商用能力需选择商业密钥申请流程。回调地址不匹配Flickr 校验 Callback URL 必须与授权时传入的oauth_callback一致。请确认粘贴的是 Automatisch 页面展示的完整OAuth Redirect URL含协议、域名与路径不要手动修改。授权后连接状态为失效可在 Automatisch 中重新验证连接或直接删除重建。底层依赖flickr.test.login的连通性若 Token 被 Flickr 侧吊销需重新走一遍授权流程。Consumer Key / Secret 填反两个字段一一对应Key → Consumer KeyKey Secret → Consumer Secret填反会导致签名校验失败。小结Flickr 连接配置本质上是一次标准的 OAuth 1.0a 三方授权Flickr 侧负责签发 Consumer 凭据并校验回调Automatisch 侧通过generate-auth-url→verify-credentials→is-still-verified三段式认证模块完成握手并以 HMAC-SHA1 签名中间层add-auth-header透明处理后续全部 API 请求。按照本文 14 步操作完成配置后你就能在 Automatisch 中基于 Flickr 连接搭建诸如新照片自动归档到相册收藏的照片自动同步等自动化工作流连接细节可随时回到本文对应的官方文档 connection.md 复核。【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表