简体中文
Appearance
检索由推文ID标识的X(Twitter)帖子的最新评论,支持游标分页。用于查看已知帖子的最新讨论并继续浏览其他评论页面。
token
string
tweetId
cursor
💡 环境说明
默认使用 https://api.justoneapi.com;可选 http://47.117.133.51:30015。
https://api.justoneapi.com
http://47.117.133.51:30015
curl --max-time 120 -X GET 'https://api.justoneapi.com/api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE'
我想使用 Just One API 提供的“帖子评论 (V1)”接口。 接入地址: 默认使用 https://api.justoneapi.com;中国大陆用户也可以改用 http://47.117.133.51:30015。 接口路径: /api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE 接口地址: BASE_URL + /api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE HTTP 方法: GET 身份验证: 在 URL 中传入 token 查询参数。 OpenAPI 定义: https://docs.justoneapi.com/openapi/twitter/post-comments-v1-zh.json 请求参数说明: - token (query): 访问API所需的鉴权令牌。 (必填) - tweetId (query): X(Twitter)帖子的唯一标识符。 (必填) - cursor (query): 由先前响应返回的分页游标。 返回格式: 请根据实际 Content-Type 安全处理 JSON 或文本响应。 响应处理与错误码: 1. 需通过返回体中的 "code" 字段判断业务结果(code 为 0 表示成功)。 2. 超时建议:建议将请求超时时间设置为 120 秒;如果 120 秒偏长,请至少设置为 60 秒,但可能会有少量请求因超时而未接收到结果。 3. 业务码说明: - 0: 成功 - 100: Token 无效或已失效 - 301: 采集失败,请重试 - 302: 超出速率限制 - 303: 超出每日配额 - 400: 参数错误 - 500: 内部服务器错误 - 600: 权限不足 - 601: 账户余额不足 - 602: TOKEN 限额超限 4. code 601 表示账户共享余额不足。code 602 表示当前 API TOKEN 自身的累计消费上限已达到。TOKEN 限额不是资金划拨,多个 TOKEN 仍共享同一个账户余额。 请帮我用我擅长的编程语言写一个脚本来调用这个接口,并处理返回结果。
import requests BASE_URL = "https://api.justoneapi.com" # 可选服务器: "http://47.117.133.51:30015" url = BASE_URL + "/api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE" response = requests.get(url, timeout=120) print(response.status_code) if response.content: content_type = response.headers.get("content-type", "").lower() if "json" in content_type: try: print(response.json()) except ValueError: print(response.text) elif content_type.startswith("text/") or "xml" in content_type or content_type.split(";", 1)[0].strip() in {"application/javascript", "application/x-www-form-urlencoded", "application/graphql"}: print(response.text) else: with open("response.bin", "wb") as output: output.write(response.content) print(f"Saved {len(response.content)} bytes to response.bin")
const BASE_URL = "https://api.justoneapi.com"; // 可选服务器: "http://47.117.133.51:30015" const url = BASE_URL + "/api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE"; const response = await fetch(url, { method: "GET", signal: AbortSignal.timeout(120000) }); console.log(response.status); const responseBytes = await response.arrayBuffer(); if (responseBytes.byteLength) { const contentType = (response.headers.get("content-type") || "").toLowerCase(); const mediaType = contentType.split(";", 1)[0].trim(); const textual = contentType.startsWith("text/") || contentType.includes("json") || contentType.includes("xml") || ["application/javascript", "application/x-www-form-urlencoded", "application/graphql"].includes(mediaType); if (textual) { const responseText = new TextDecoder().decode(responseBytes); let data = responseText; if (contentType.includes("json")) { try { data = JSON.parse(responseText); } catch { /* Keep the raw body. */ } } console.log(data); } else { console.log(`Received ${responseBytes.byteLength} binary bytes`); } }
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; public class Main { public static void main(String[] args) throws Exception { final String BASE_URL = "https://api.justoneapi.com"; // 可选服务器: "http://47.117.133.51:30015" final String url = BASE_URL + "/api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE"; HttpClient client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(120)).build(); HttpRequest.Builder builder = HttpRequest.newBuilder() .uri(URI.create(url)) .timeout(Duration.ofSeconds(120)) .method("GET", HttpRequest.BodyPublishers.noBody()); HttpRequest request = builder.build(); HttpResponse<byte[]> response = client.send(request, HttpResponse.BodyHandlers.ofByteArray()); System.out.println(response.statusCode()); String contentType = response.headers().firstValue("content-type").orElse("").toLowerCase(); String mediaType = contentType.split(";", 2)[0].trim(); if (contentType.startsWith("text/") || contentType.contains("json") || contentType.contains("xml") || mediaType.equals("application/javascript") || mediaType.equals("application/x-www-form-urlencoded") || mediaType.equals("application/graphql")) { System.out.println(new String(response.body(), StandardCharsets.UTF_8)); } else { Files.write(Path.of("response.bin"), response.body()); System.out.println("Saved " + response.body().length + " bytes to response.bin"); } } }
package main import ( "fmt" "io" "os" "strings" "net/http" "time" ) const BASE_URL = "https://api.justoneapi.com" // 可选服务器: "http://47.117.133.51:30015" func main() { client := &http.Client{Timeout: 120 * time.Second} url := BASE_URL + "/api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE" req, _ := http.NewRequest("GET", url, nil) resp, _ := client.Do(req) defer resp.Body.Close() fmt.Println(resp.StatusCode) bodyBytes, _ := io.ReadAll(resp.Body) contentType := strings.ToLower(resp.Header.Get("Content-Type")) mediaType := strings.TrimSpace(strings.SplitN(contentType, ";", 2)[0]) if strings.HasPrefix(contentType, "text/") || strings.Contains(contentType, "json") || strings.Contains(contentType, "xml") || mediaType == "application/javascript" || mediaType == "application/x-www-form-urlencoded" || mediaType == "application/graphql" { fmt.Println(string(bodyBytes)) } else { os.WriteFile("response.bin", bodyBytes, 0600) fmt.Printf("Saved %d bytes to response.bin\n", len(bodyBytes)) } }
<?php $BASE_URL = 'https://api.justoneapi.com'; // 可选服务器: "http://47.117.133.51:30015" $url = $BASE_URL . '/api/twitter/get-post-comments/v1?token=YOUR_API_KEY&tweetId=VALUE'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 120); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); $contentType = strtolower((string) curl_getinfo($ch, CURLINFO_CONTENT_TYPE)); curl_close($ch); echo $status . PHP_EOL; $mediaType = trim(explode(';', $contentType, 2)[0]); if (str_starts_with($contentType, 'text/') || str_contains($contentType, 'json') || str_contains($contentType, 'xml') || in_array($mediaType, ['application/javascript', 'application/x-www-form-urlencoded', 'application/graphql'], true)) { echo $response; } else { file_put_contents('response.bin', $response); echo 'Saved ' . strlen($response) . ' bytes to response.bin' . PHP_EOL; }
Twitter帖子评论 API (V1)
检索由推文ID标识的X(Twitter)帖子的最新评论,支持游标分页。用于查看已知帖子的最新讨论并继续浏览其他评论页面。
请求参数
tokenstringtweetIdstringcursorstring代码示例
💡 环境说明
默认使用
https://api.justoneapi.com;可选http://47.117.133.51:30015。响应示例