123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import { Injectable } from "@angular/core";
- import { HttpClient } from "@angular/common/http";
- import { Storage } from "@ionic/storage";
- import Twit from "twit";
- @Injectable()
- export class TwitterApiProvider {
- client: Twit;
- constructor(public http: HttpClient, private storage: Storage) {
- this.initApi();
- }
- private async initApi() {
- const access_token_key = await this.storage.get("accessTokenKey");
- const access_token_secret = await this.storage.get("accessTokenSecret");
- this.client = new Twit({
- consumer_key: "UxZkbKotkr8Uc6seupnaZ1kDE",
- consumer_secret: "fEAas8iugR60FOEXsFG0iajq6oyfIIXRBVMlTgWxBd1stWIKHq",
- access_token: access_token_key,
- access_token_secret: access_token_secret,
- timeout_ms: 60 * 1000 // optional HTTP request timeout to apply to all requests.
- });
- }
- public async fetchHomeFeed() {
- return await this.client.get("statuses/home_timeline", {
- count: 10,
- include_entities: true,
- tweet_mode: "extended"
- });
- }
- public async fetchHomeFeedSince(id) {
- return await this.client.get("statuses/home_timeline", {
- max_id: id,
- count: 15,
- include_entities: true,
- tweet_mode: "extended"
- });
- }
- public async fetchUser(userId) {
- const res = await this.client.get("users/lookup", { user_id: userId });
- return res.data[0];
- }
- public async fetchUserTimeline(userId) {
- const res = await this.client.get("statuses/user_timeline", {
- user_id: userId,
- include_entities: true,
- tweet_mode: "extended",
- count: 20
- });
- return res.data;
- }
- public async fetchUserTimelineSince(userId, maxId) {
- const res = await this.client.get("statuses/user_timeline", {
- user_id: userId,
- max_id: maxId,
- include_entities: true,
- tweet_mode: "extended",
- count: 20
- });
- return res.data;
- }
- public async destroyFriendship(userId) {
- return await this.client.post("friendships/destroy", { user_id: userId });
- }
- public async muteUser(userId) {
- return await this.client.post("mutes/users/create", { user_id: userId });
- }
- public async blockUser(userId) {
- return await this.client.post("blocks/create", { user_id: userId });
- }
- public async tweet(status) {
- return await this.client.post("statuses/update", { status: status });
- }
- public async fetchFriends(userId) {
- let friends = [];
- let cursor = -1;
- while (cursor != 0) {
- const res = await this.client.get("friends/list", {
- user_id: userId,
- count: 200,
- include_user_entities: false,
- cursor: cursor
- });
- cursor = res.data["next_cursor"];
- friends = friends.concat(res.data["users"]);
- }
- return friends;
- }
- }
|