oauth2-token.ts (2)
const response = await fetch(`https://api.twitter.com/oauth2/token`, {
method: "POST",
headers: new Headers({
Authorization: `Basic ${auth}`,
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
}),
body: "grant_type=client_credentials",
});
const result = await response.json();
console.log(result, result.access_token);
await Deno.writeTextFile("./oauth2-token-result.json", JSON.stringify(result));
v11-tweets-search.ts (1)
import { parse } from "https://deno.land/std@0.66.0/flags/mod.ts";
console.log(Deno.args);
const parsedArgs = parse(Deno.args);
console.log(parsedArgs);
console.log(parsedArgs.o);
const oauthTokenResult = JSON.parse(
await Deno.readTextFile("./oauth2-token-result.json")
);
console.log(oauthTokenResult.access_token);
v11-tweets-search.ts (2)
const params = new URLSearchParams({
q: `#とらラボ #LT`, // #とらラボLTはNG、#LTはOK、たぶん、ハッシュタグ内に日本語と英語の混在がNG
count: "5",
lang: "ja",
locale: "ja",
result_type: "recent",
// since_id: '',
});
v11-tweets-search.ts (3)
const execute = async () => {
const response = await fetch(
`https://api.twitter.com/1.1/search/tweets.json?${params}`,
{
method: "GET",
headers: new Headers({
Authorization: `Bearer ${oauthTokenResult.access_token}`,
"Content-Type": "application/json",
}),
}
);
const result = await response.json();
console.log(result);
v11-tweets-search.ts (4)
await Deno.writeTextFile(
`${parsedArgs.o ? parsedArgs.o : "."}/v11-tweets-search-result.json`,
JSON.stringify(result)
);
};
await execute();
if (parsedArgs.f) {
setInterval(async () => {
await execute();
}, parsedArgs.f);
}