You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Upwork REST API的Callback URL?附相关技术疑问

Upwork API 回调URL相关问题解答

1. Callback URL 实现方法

Callback URL 是一个公网可访问的HTTP服务端点,核心要求:

  • 必须能被Upwork服务器访问(不能用localhost或私有IP)
  • 支持接收GET请求,能解析URL中的code(授权码)和state(防CSRF参数)参数

你需要在公网服务器上部署一个简单的Web服务,专门处理Upwork的授权回调请求。

2. Python/PHP 回调脚本示例

Python(Flask 实现)

from flask import Flask, request

app = Flask(__name__)

@app.route('/upwork-callback')
def upwork_callback():
    # 提取授权码和state参数
    auth_code = request.args.get('code')
    state = request.args.get('state')
    
    # 可将授权码存储或直接展示给用户
    print(f"授权码: {auth_code}")
    return f"授权成功!请复制授权码到你的脚本中:{auth_code}"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

PHP 示例

<?php
// upwork-callback.php
if (isset($_GET['code']) && isset($_GET['state'])) {
    $auth_code = $_GET['code'];
    // 可将授权码写入文件或输出
    echo "授权完成,授权码:" . $auth_code;
    file_put_contents('auth_code.txt', $auth_code);
} else {
    echo "授权失败,缺少必要参数";
}
?>

3. 从Callback获取API返回值

  1. 在回调服务中,通过GET请求的URL参数直接提取code(授权码)和state参数
  2. 将获取到的code传入你的主脚本(即你提供的Upwork搜索脚本),调用client.get_access_token(auth_code)换取访问令牌与刷新令牌
  3. 拿到有效令牌后,即可正常调用Upwork API接口获取职位数据

4. 爬取Upwork vs 使用API:哪个更简单?

强烈不建议爬取Upwork网站:

  • Upwork有严格反爬机制,IP易被封禁,账号可能被冻结
  • 网站结构随时变动,爬虫维护成本极高
  • 违反Upwork用户协议,存在法律风险

使用官方API是更稳妥的方案:数据结构稳定,有官方文档支持。如果你没有公网服务器,可尝试:

  • 选择桌面应用类型创建Upwork开发者应用,这种模式无需Callback URL,可手动复制授权码
  • 使用免费无服务器函数平台部署简单的回调服务

内容的提问来源于stack exchange,提问作者Mévatlavé Kraspek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:23:14