Skip to content

Commit 9d0aea7

Browse files
Completed apple product api tutorial
1 parent af54a4a commit 9d0aea7

3 files changed

Lines changed: 121 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import OpenAI from "openai";
2+
import dotenv from "dotenv";
3+
import { getJson } from "serpapi"
4+
dotenv.config();
5+
6+
//OpenAI API setup
7+
const openAiKey = process.env.OPEN_AI_KEY;
8+
const client = new OpenAI({ apiKey: openAiKey });
9+
10+
//SerpApi setup
11+
const serpApiKey = process.env.SERP_API_KEY;
12+
13+
let appReviews;
14+
try {
15+
16+
const app = await getJson({
17+
api_key: serpApiKey,
18+
engine: "apple_app_store",
19+
term: "instagram",
20+
num: "5"
21+
});
22+
const appId = app?.organic_results[0]?.product_id;
23+
appReviews = await getJson({
24+
api_key: serpApiKey,
25+
engine: "apple_reviews",
26+
product_id: appId
27+
});
28+
} catch (err) {
29+
console.error("Failed to fetch reviews from SerpApi:", err);
30+
process.exit(1);
31+
}
32+
33+
const textReviews = appReviews?.reviews.map(review => review.text)
34+
35+
let response;
36+
try {
37+
response = await client.responses.create({
38+
model: "gpt-5.4",
39+
input: `Given the list of comma-separated reviews for a mobile app, give me a summary of the main criticisms: ${textReviews.join(", ")}`,
40+
});
41+
} catch (err) {
42+
console.error("Failed to get response from OpenAI:", err.message);
43+
process.exit(1);
44+
}
45+
46+
console.log(response.output_text);

javascript_video_tutorials/apple_product_api/package-lock.json

Lines changed: 57 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "apple_product_api",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"keywords": [],
10+
"author": "",
11+
"license": "ISC",
12+
"type": "module",
13+
"dependencies": {
14+
"dotenv": "^17.3.1",
15+
"openai": "^6.32.0",
16+
"serpapi": "^2.2.1"
17+
}
18+
}

0 commit comments

Comments
 (0)