二、認(rèn)證與訪問(wèn)流程

1. 注冊(cè)與獲取憑據(jù)

要使用 Upwork API,首先需要:

  1. 擁有一個(gè) Upwork 開(kāi)發(fā)者賬戶。
  2. 登錄 Upwork Developer Portal
  3. 創(chuàng)建應(yīng)用,獲取 Client IDClient Secret

2. OAuth 2.0 授權(quán)流程

Upwork API 使用 OAuth 2.0作為身份驗(yàn)證機(jī)制,核心流程包括:

GET https://www.upwork.com/ab/account-security/oauth2/authorize
?client_id=YOUR_CLIENT_ID
&response_type=code
&redirect_uri=YOUR_REDIRECT_URI
&scope=freelancer_earnings
POST https://www.upwork.com/api/v3/oauth2/token
-d "client_id=YOUR_CLIENT_ID"
-d "client_secret=YOUR_CLIENT_SECRET"
-d "code=AUTH_CODE"
-d "grant_type=authorization_code"
-d "redirect_uri=YOUR_REDIRECT_URI"
{
"access_token": "ACCESS_TOKEN",
"refresh_token": "REFRESH_TOKEN",
"expires_in": 3600
}

三、常用 API 接口

1. 用戶信息接口

GET /api/v3/me

返回用戶 ID、角色、郵箱、注冊(cè)信息等。

2. 職位管理接口

GET /api/v3/jobs

支持篩選條件:技能標(biāo)簽、預(yù)算、時(shí)薪等。

POST /api/v3/jobs
Content-Type: application/json
{
"title": "React 開(kāi)發(fā)工程師",
"description": "需要構(gòu)建一個(gè)前端應(yīng)用",
"budget": 2000,
"skills": ["React", "JavaScript", "API Integration"]
}

3. 合同與付款接口

GET /api/v3/contracts/{contract_id}
GET /api/v3/payments

4. 消息與任務(wù)接口

GET /api/v3/messages/conversations
POST /api/v3/messages/send
{
"conversation_id": "12345",
"message": "Hello, welcome to the project!"
}

四、實(shí)戰(zhàn)案例

4.1 搜索工作示例

使用Upwork API搜索工作是常見(jiàn)的應(yīng)用場(chǎng)景。以下是一個(gè)搜索工作的示例:

# 設(shè)置搜索參數(shù)
params = {'q': 'python', 'title': 'Web developer'}

# 調(diào)用搜索API
result = search.Api(client).find(params)

# 輸出結(jié)果
print(result)

4.2 GraphQL API使用

隨著Upwork向GraphQL API遷移,以下是一個(gè)使用GraphQL查詢職位發(fā)布的示例:

query {
marketplaceJobPostings(
marketPlaceJobFilter: { searchTerm_eq: { andTerms_all: "" } }
searchType: USER_JOBS_SEARCH
sortAttributes: { field: CREATE_TIME, sortOrder: DESC }
) {
edges {
node {
id
title
createdDateTime
description
}
}
}
}

4.3 使用Flask實(shí)現(xiàn)回調(diào)URL

對(duì)于Web應(yīng)用,需要實(shí)現(xiàn)一個(gè)回調(diào)URL來(lái)處理OAuth認(rèn)證后的重定向。以下是一個(gè)使用Flask實(shí)現(xiàn)的示例:

from flask import Flask, request
import upwork

app = Flask(__name__)

# 配置API憑證
client_id = "你的client_id"
client_secret = "你的client_secret"
redirect_uri = "你的redirect_uri"

# 創(chuàng)建配置對(duì)象
config = upwork.Config({
"client_id": client_id,
"client_secret": client_secret,
"redirect_uri": redirect_uri
})

@app.route('/callback')
def callback():
# 從請(qǐng)求參數(shù)中獲取授權(quán)碼
auth_code = request.args.get('code')

# 創(chuàng)建客戶端實(shí)例
client = upwork.Client(config)

# 使用授權(quán)碼獲取訪問(wèn)令牌
token = client.get_access_token(auth_code)

return f"Access token: {token.access_token}\nRefresh token: {token.refresh_token}"

if __name__ == '__main__':
app.run()

五、使用技巧與優(yōu)化實(shí)踐

  1. 緩存策略
  1. 分頁(yè)與速率限制
  1. Refresh Token 機(jī)制
  1. 數(shù)據(jù)安全
  1. Webhook 集成

六、常見(jiàn)問(wèn)題 FAQ

Q1:Upwork API 是否免費(fèi)?
答:開(kāi)發(fā)者可以免費(fèi)使用 Upwork API,但部分高級(jí)功能(如數(shù)據(jù)導(dǎo)出、擴(kuò)展權(quán)限)可能受限。

Q2:如何獲取更多調(diào)用額度?
答:需要向 Upwork 提交申請(qǐng),提供應(yīng)用使用場(chǎng)景與數(shù)據(jù)安全說(shuō)明。

Q3:是否支持沙箱環(huán)境?
答:是的,Upwork 提供 Sandbox API 環(huán)境,方便測(cè)試。

Q4:能否與支付 API 集成?
答:可以,Upwork API 能導(dǎo)出付款記錄,結(jié)合 PayPal/Stripe API 進(jìn)行二次分析。

七、總結(jié)

Upwork API為企業(yè)與開(kāi)發(fā)者提供了強(qiáng)大的接口能力,使得自由職業(yè)招聘、項(xiàng)目管理與數(shù)據(jù)分析更加自動(dòng)化與高效。掌握認(rèn)證流程、常用接口與優(yōu)化實(shí)踐,不僅能幫助企業(yè)降低人工成本,還能拓展更多跨平臺(tái)應(yīng)用場(chǎng)景。無(wú)論是構(gòu)建自動(dòng)化招聘助手,還是打造智能分析工具,Upwork API 都是連接業(yè)務(wù)與全球自由職業(yè)者的重要橋梁。

上一篇:

如何訪問(wèn)Twitch API?從入門到實(shí)踐的全指南

下一篇:

Duolingo API 使用指南:語(yǔ)言學(xué)習(xí)與智能應(yīng)用的融合實(shí)踐
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)