如何获取LinkedIn contactExporterTasks任务权限?Next.js+Supabase场景
解决方案
1. 添加必需的OAuth授权Scope
你当前的OAuth登录scopes缺少contact_exporter——这是调用contactExporterTasks接口的核心权限。修改Supabase的OAuth配置,将该scope加入授权列表:
const { data, error } = await supabase.auth.signInWithOAuth({ provider, options: { redirectTo: `${window.location.origin}/auth/callback`, scopes: "openid,profile,w_member_social,email,contact_exporter" // 新增contact_exporter }, });
2. 确认LinkedIn应用权限配置
检查LinkedIn开发者后台的「产品」->「权限」模块,确保已添加Contact Exporter权限并通过审核。注意:该权限针对商业用途的应用可能需要额外的审核流程,若你之前未申请到,需重新提交权限申请并说明使用场景。
3. 完善API请求体参数
你的POST请求缺少必要的请求体,LinkedIn的contactExporterTasks接口要求指定导出格式等参数,缺失会触发权限类错误。补充请求体示例:
const linkedinResponse = await fetch("https://api.linkedin.com/v2/contactExporterTasks", { method: "POST", headers: { "Authorization": `Bearer ${linkedinToken}`, "Content-Type": "application/json", "X-Restli-Protocol-Version": "2.0.0", }, body: JSON.stringify({ "format": "CSV", // 支持CSV或VCF格式 "locale": { "country": "CN", // 根据用户实际地区调整 "language": "zh" } }) });
4. 验证令牌权限有效性
调用LinkedIn令牌信息接口,确认返回的令牌已包含contact_exporter权限:
const tokenInfo = await fetch("https://api.linkedin.com/v2/me?projection=(id,authorizedScopes)", { headers: { "Authorization": `Bearer ${linkedinToken}` } });
若authorizedScopes中无该权限,需引导用户重新授权,确保用户同意授予联系人导出权限。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

