|
|
@@ -0,0 +1,57 @@
|
|
|
+import { GetNumberResponse, GetNumberService } from './get-number-service'
|
|
|
+import { RcsNumberSource } from '../entities/rcs-number.entity'
|
|
|
+import axios from 'axios'
|
|
|
+import { InternalServerErrorException } from '@nestjs/common'
|
|
|
+
|
|
|
+const token = 'Wr7bluUmhMKc7ouUKgdL4CR3YGIDLMiV27EWhP71u2ifu65FJ8iAb2fHweC60tZ8w_t_z4ISQlcEfLvfe7SWytJOzhcdtA=='
|
|
|
+
|
|
|
+const axiosInstance = axios.create({
|
|
|
+ baseURL: 'http://www.23256api.com/smsapi/record/'
|
|
|
+})
|
|
|
+
|
|
|
+export class sms23256 extends GetNumberService {
|
|
|
+ source: RcsNumberSource = RcsNumberSource.sms23256
|
|
|
+
|
|
|
+ async getNumber(country: string, num?: number): Promise<GetNumberResponse> {
|
|
|
+ if (country.toLocaleLowerCase() !== 'us') throw new Error('Only US is supported')
|
|
|
+ const res = await axiosInstance.get('phone', {
|
|
|
+ params: {
|
|
|
+ token,
|
|
|
+ keyword: 'googlemessenger'
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ if (res.data.code !== 200) {
|
|
|
+ throw new InternalServerErrorException(res.data.msg)
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ number: res.data.data.phoneNumber,
|
|
|
+ orderId: res.data.data.id,
|
|
|
+ operatorCode: '',
|
|
|
+ operatorName: '',
|
|
|
+ rawResponse: res.data
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ async releaseNumber(number: string) {}
|
|
|
+
|
|
|
+ async retriveMessage(orderId: string, num?: number): Promise<string> {
|
|
|
+ const { data } = await axiosInstance.get('code', {
|
|
|
+ params: {
|
|
|
+ token,
|
|
|
+ phoneid: orderId
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 如果data是一串数字字符串
|
|
|
+ if (/^\d+$/.test(data)) {
|
|
|
+ return `Your Messenger verification code is G-${data}`
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ async blockNumber(number: string) {}
|
|
|
+
|
|
|
+ async cacheNumber(country: string, size: number) {
|
|
|
+ return null
|
|
|
+ }
|
|
|
+}
|