Загрузка...

Web app tg ошибка авотризации через гугл

Тема в разделе Python создана пользователем bich1r 17 ноя 2024. 171 просмотр

  1. bich1r
    bich1r Автор темы 17 ноя 2024 0 26 янв 2022
    Привет, короче траблс 403 user agent disalowed при попытке авторизации в гугл через телеграм веб аппс, чо дел. Можно ли как то это обойти?
    вот ботик сам @ASGPT_ROBOT
     
  2. bich1r
    bich1r Автор темы 17 ноя 2024 0 26 янв 2022
    ChatGPT короче траблс 403 user agent disalowed при попытке авторизации в гугл через телеграм веб аппс, чо дел. Можно ли как то это обойти?
     
    1. ChatGPT
      Привет, bich1r! Ошибка 403 "User Agent Disallowed" обычно возникает, когда Google блокирует запросы из-за неподдерживаемого или запрещенного user agent. Вот несколько шагов, которые могут помочь обойти эту проблему:

      1. **Проверь User Agent**: Убедись, что ты используешь корректный и поддерживаемый user agent. Иногда Google может блокировать запросы от user agents, которые выглядят подозрительно или не поддерживаются.

      2. **Используй OAuth 2.0**: Если ты пытаешься авторизоваться через Google, убедись, что используешь OAuth 2.0. Это стандартный и рекомендуемый способ для авторизации через Google.

      3. **Проверь настройки API**: Убедись, что в консоли Google Cloud у тебя правильно настроены все разрешения и что API включен для твоего проекта.

      4. **Проверь Redirect URI**: Убедись, что redirect URI, который ты используешь, зарегистрирован в настройках OAuth 2.0 в Google Cloud Console.

      5. **Обнови библиотеку**: Если ты используешь стороннюю библиотеку для работы с Google API, убедись, что она обновлена до последней версии.

      Если проблема сохраняется, попробуй предоставить больше информации о том, как именно ты пытаешься выполнить авторизацию, чтобы я мог помочь более детально.
    2. bich1r Автор темы
      ChatGPT,
      import NextAuth from 'next-auth';
      import Google from 'next-auth/providers/google';

      export const {
      handlers: { GET, POST },
      signIn,
      signOut,
      auth,
      } = NextAuth({
      secret: process.env.BACKEND_SECURITY_KEY,
      trustHost: true,
      providers: [
      Google({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
      }),
      ],
      });
  3. Stalkie
    Stalkie 17 ноя 2024 102 8 апр 2017
    так у тебя с авторизацей проблемы, 403 это код который возвращается когда ты не авторизован
     
    1. bich1r Автор темы
      Stalkie, пофиксил, потом гугл не подошел ибо web wiev он отклоняет, подрубил яндекс и вк
  4. bich1r
    bich1r Автор темы 18 ноя 2024 0 26 янв 2022
    ChatGPT как сделать паутину которая соединяет все точки на глоубсе?


    'use client'

    import createGlobe from 'cobe';
    import React, { useEffect, useRef } from 'react';

    function Globe() {
    const canvasRef = useRef<HTMLCanvasElement | null>(null);

    useEffect(() => {
    let phi = 0;

    if (!canvasRef?.current) return;

    const globe = createGlobe(canvasRef?.current, {
    devicePixelRatio: 2,
    width: 600 * 2,
    height: 600 * 2,
    phi: 0,
    theta: 0,
    dark: 0,
    diffuse: 1.2,
    mapSamples: 16000,
    mapBrightness: 6,
    baseColor: [1, 1, 1],
    markerColor: [0.1, 0.8, 1],
    glowColor: [1, 1, 1],
    markers: [
    { location: [37.7595, -122.4367], size: 0.05 }, // Сан-Франциско
    { location: [40.7128, -74.006], size: 0.05 }, // Нью-Йорк
    { location: [51.5074, -0.1278], size: 0.05 }, // Лондон
    { location: [35.6895, 139.6917], size: 0.05 }, // Токио
    { location: [-33.8688, 151.2093], size: 0.05 }, // Сидней
    { location: [55.7558, 37.6173], size: 0.05 }, // Москва
    { location: [48.8566, 2.3522], size: 0.05 }, // Париж
    { location: [34.0522, -118.2437], size: 0.05 }, // Лос-Анджелес
    { location: [40.4168, -3.7038], size: 0.05 }, // Мадрид
    { location: [1.3521, 103.8198], size: 0.05 }, // Сингапур
    { location: [55.9533, -3.1883], size: 0.05 }, // Эдинбург
    { location: [52.5200, 13.4050], size: 0.05 }, // Берлин
    { location: [19.4326, -99.1332], size: 0.05 }, // Мехико
    { location: [39.9042, 116.4074], size: 0.05 }, // Пекин
    { location: [55.6761, 12.5683], size: 0.05 }, // Копенгаген
    { location: [59.9343, 30.3351], size: 0.05 }, // Санкт-Петербург
    { location: [37.9838, 23.7275], size: 0.05 }, // Афины
    ],
    scale: 0.5,
    opacity: 0.5,
    onRender: (state) => {
    const ctx = canvasRef.current?.getContext('2d');
    if (ctx) {
    ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); // Очистка канваса

    // Рисуем паутину
    const points = [
    [37.7595, -122.4367], // Сан-Франциско
    [40.7128, -74.006], // Нью-Йорк
    [51.5074, -0.1278], // Лондон
    [35.6895, 139.6917], // Токио
    [-33.8688, 151.2093], // Сидней
    [55.7558, 37.6173], // Москва
    [48.8566, 2.3522], // Париж
    [34.0522, -118.2437], // Лос-Анджелес
    [40.4168, -3.7038], // Мадрид
    [1.3521, 103.8198], // Сингапур
    [55.9533, -3.1883 ], // Эдинбург
    [52.5200, 13.4050], // Берлин
    [19.4326, -99.1332], // Мехико
    [39.9042, 116.4074], // Пекин
    [55.6761, 12.5683], // Копенгаген
    [59.9343, 30.3351], // Санкт-Петербург
    [37.9838, 23.7275], // Афины
    ];

    ctx.strokeStyle = 'rgba(0, 0, 255, 0.5)'; // Цвет линий паутины
    ctx.lineWidth = 1; // Ширина линий

    // Рисуем линии между точками
    for (let i = 0; i < points.length; i++) {
    for (let j = i + 1; j < points.length; j++) {
    const [lat1, lng1] = points;
    const [lat2, lng2] = points[j];

    const x1 = (lng1 + 180) * (ctx.canvas.width / 360);
    const y1 = (90 - lat1) * (ctx.canvas.height / 180);
    const x2 = (lng2 + 180) * (ctx.canvas.width / 360);
    const y2 = (90 - lat2) * (ctx.canvas.height / 180);

    ctx.beginPath();
    ctx.moveTo(x1, y1);
    ctx.lineTo(x2, y2);
    ctx.stroke();
    }
    }

    // Остальной код для рисования линий от меток к центральной метке
    const centralMarker = points[1]; // Например, Нью-Йорк

    // Рисуем линии от каждой метки к центральной метке
    for (let i = 0; i < points.length; i++) {
    const [lat1, lng1] = points;

    const x1 = (lng1 + 180) * (ctx.canvas.width / 360);
    const y1 = (90 - lat1) * (ctx.canvas.height / 180);

    const [latCentral, lngCentral] = centralMarker;
    const xCentral = (lngCentral + 180) * (ctx.canvas.width / 360);
    const yCentral = (90 - latCentral) * (ctx.canvas.height / 180);

    // Добавляем эффект паралакса
    const offsetX = Math.sin(phi) * 10; // Смещение по X
    const offsetY = Math.cos(phi) * 10; // Смещение по Y

    ctx.beginPath();
    ctx.moveTo(x1 + offsetX, y1 + offsetY);
    ctx.lineTo(xCentral + offsetX, yCentral + offsetY);
    ctx.stroke();
    }
    }

    // Обновляем параметры анимации
    state.phi = phi;
    phi += 0.01;
    },
    });

    return () => {
    globe.destroy();
    };
    }, []);

    return (
    <div className="App">
    <canvas
    ref={canvasRef}
    style={{ width: 600, height: 600, maxWidth: '100%', aspectRatio: 1 }}
    />
    </div>
    );
    }

    export default Globe;
     
    1. ChatGPT
      Привет, bich1r! Давай разберёмся с твоими вопросами.

      1. **Ошибка 403 user agent disallowed при авторизации через Google**: Эта ошибка обычно возникает, когда Google блокирует попытку авторизации из-за неподдерживаемого или запрещённого user agent. Чтобы обойти это, попробуй следующее:
      - Убедись, что ты используешь актуальную версию библиотеки для авторизации.
      - Проверь, не блокирует ли Google авторизацию из-за настроек безопасности в твоём аккаунте.
      - Попробуй изменить user agent на более распространённый, например, как у браузера Chrome или Firefox.
      - Если ты используешь OAuth 2.0, убедись, что все параметры запроса корректны и соответствуют требованиям Google.

      2. **Создание паутины, соединяющей все точки на глобусе**: В твоём коде используется библиотека `cobe` для создания глобуса. Чтобы соединить точки линиями, тебе нужно добавить функциональность для рисования линий между маркерами. К сожалению, в предоставленном коде нет функции для этого, но ты можешь попробовать добавить её следующим образом:

      JavaScript

      onRender: (state) => {
      const ctx = canvasRef.current?.getContext('2d');
      if (!ctx) return;

      // Пример соединения всех точек линиями
      ctx.beginPath();
      ctx.strokeStyle = 'rgba(0.1, 0.8, 1, 0.5)'; // Цвет линии
      ctx.lineWidth = 1;

      const markers = state.markers;
      for (let i = 0; i < markers.length; i++) {
      for (let j = i + 1; j < markers.length; j++) {
      const start = markers[i];
      const end = markers[j];
      ctx.moveTo(start.x, start.y);
      ctx.lineTo(end.x, end.y);
      }
      }

      ctx.stroke();
      }
      Этот код добавляет линии между всеми маркерами на глобусе. Обрати внимание, что это может замедлить рендеринг, если точек много.

      Если у тебя будут ещё вопросы или что-то не получится, дай знать!
    2. bich1r Автор темы
  5. bich1r
    bich1r Автор темы 18 ноя 2024 0 26 янв 2022
    ChatGPT
    как сделать паутину которая соединяет все точки на глоубсе?


    'use client'

    import createGlobe from 'cobe';
    import React, { useEffect, useRef } from 'react';

    function Globe() {
    const canvasRef = useRef<HTMLCanvasElement | null>(null);

    useEffect(() => {
    let phi = 0;

    if (!canvasRef?.current) return;

    const globe = createGlobe(canvasRef?.current, {
    devicePixelRatio: 2,
    width: 600 * 2,
    height: 600 * 2,
    phi: 0,
    theta: 0,
    dark: 0,
    diffuse: 1.2,
    mapSamples: 16000,
    mapBrightness: 6,
    baseColor: [1, 1, 1],
    markerColor: [0.1, 0.8, 1],
    glowColor: [1, 1, 1],
    markers: [
    { location: [37.7595, -122.4367], size: 0.05 }, // Сан-Франциско
    { location: [40.7128, -74.006], size: 0.05 }, // Нью-Йорк
    { location: [51.5074, -0.1278], size: 0.05 }, // Лондон
    { location: [35.6895, 139.6917], size: 0.05 }, // Токио
    { location: [-33.8688, 151.2093], size: 0.05 }, // Сидней
    { location: [55.7558, 37.6173], size: 0.05 }, // Москва
    { location: [48.8566, 2.3522], size: 0.05 }, // Париж
    { location: [34.0522, -118.2437], size: 0.05 }, // Лос-Анджелес
    { location: [40.4168, -3.7038], size: 0.05 }, // Мадрид
    { location: [1.3521, 103.8198], size: 0.05 }, // Сингапур
    { location: [55.9533, -3.1883], size: 0.05 }, // Эдинбург
    { location: [52.5200, 13.4050], size: 0.05 }, // Берлин
    { location: [19.4326, -99.1332], size: 0.05 }, // Мехико
    { location: [39.9042, 116.4074], size: 0.05 }, // Пекин
    { location: [55.6761, 12.5683], size: 0.05 }, // Копенгаген
    { location: [59.9343, 30.3351], size: 0.05 }, // Санкт-Петербург
    { location: [37.9838, 23.7275], size: 0.05 }, // Афины
    ],
    scale: 0.5,
    opacity: 0.5,
    onRender: (state) => {
    const ctx = canvasRef.current?.getContext('2d');
    if (ctx) {
    ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); // Очистка канваса

    // Рисуем паутину
    const points = [
    [37.7595, -122.4367], // Сан-Франциско
    [40.7128, -74.006], // Нью-Йорк
    [51.5074, -0.1278], // Лондон
    [35.6895, 139.6917], // Токио
    [-33.8688, 151.2093], // Сидней
    [55.7558, 37.6173], // Москва
    [48.8566, 2.3522], // Париж
    [34.0522, -118.2437], // Лос-Анджелес
    [40.4168, -3.7038], // Мадрид
    [1.3521, 103.8198], // Сингапур
    [55.9533, -3.1883 ], // Эдинбург
    [52.5200, 13.4050], // Берлин
    [19.4326, -99.1332], // Мехико
    [39.9042, 116.4074], // Пекин
    [55.6761, 12.5683], // Копенгаген
    [59.9343, 30.3351], // Санкт-Петербург
    [37.9838, 23.7275], // Афины
    ];

    ctx.strokeStyle = 'rgba(0, 0, 255, 0.5)'; // Цвет линий паутины
    ctx.lineWidth = 1; // Ширина линий

    // Рисуем линии между точками
    for (let i = 0; i < points.length; i++) {
    for (let j = i + 1; j < points.length; j++) {
    const [lat1, lng1] = points;
    const [lat2, lng2] = points[j];

    const x1 = (lng1 + 180) * (ctx.canvas.width / 360);
    const y1 = (90 - lat1) * (ctx.canvas.height / 180);
    const x2 = (lng2 + 180) * (ctx.canvas.width / 360);
    const y2 = (90 - lat2) * (ctx.canvas.height / 180);

    ctx.beginPath();
    ctx.moveTo(x1, y1);
    ctx.lineTo(x2, y2);
    ctx.stroke();
    }
    }

    // Остальной код для рисования линий от меток к центральной метке
    const centralMarker = points[1]; // Например, Нью-Йорк

    // Рисуем линии от каждой метки к центральной метке
    for (let i = 0; i < points.length; i++) {
    const [lat1, lng1] = points;

    const x1 = (lng1 + 180) * (ctx.canvas.width / 360);
    const y1 = (90 - lat1) * (ctx.canvas.height / 180);

    const [latCentral, lngCentral] = centralMarker;
    const xCentral = (lngCentral + 180) * (ctx.canvas.width / 360);
    const yCentral = (90 - latCentral) * (ctx.canvas.height / 180);

    // Добавляем эффект паралакса
    const offsetX = Math.sin(phi) * 10; // Смещение по X
    const offsetY = Math.cos(phi) * 10; // Смещение по Y

    ctx.beginPath();
    ctx.moveTo(x1 + offsetX, y1 + offsetY);
    ctx.lineTo(xCentral + offsetX, yCentral + offsetY);
    ctx.stroke();
    }
    }

    // Обновляем параметры анимации
    state.phi = phi;
    phi += 0.01;
    },
    });

    return () => {
    globe.destroy();
    };
    }, []);

    return (
    <div className="App">
    <canvas
    ref={canvasRef}
    style={{ width: 600, height: 600, maxWidth: '100%', aspectRatio: 1 }}
    />
    </div>
    );
    }

    export default Globe;


    дай полный код с изменениями
     
    1. ChatGPT
      Привет, bich1r! Давай разберёмся с твоими вопросами.

      1. **Ошибка 403 при авторизации через Google в Telegram Web Apps**: Ошибка 403 "User Agent Disallowed" обычно возникает, когда Google блокирует определённые user-agent'ы. Это может быть связано с тем, что Telegram Web Apps использует нестандартный user-agent, который Google не разрешает для OAuth авторизации. Чтобы обойти это, можно попробовать использовать ******-сервер, который будет изменять user-agent на разрешённый, или использовать другой метод авторизации, например, через OAuth 2.0 с использованием серверной части.

      2. **Создание паутины на глобусе**: В твоём коде ты уже начал рисовать паутину, соединяя точки на глобусе. Чтобы завершить её, тебе нужно соединить все точки линиями. Вот пример, как это можно сделать:

      JavaScript

      const drawLine = (ctx, point1, point2) => {
      ctx.beginPath();
      ctx.moveTo(point1[0], point1[1]);
      ctx.lineTo(point2[0], point2[1]);
      ctx.strokeStyle = 'rgba(0.1, 0.8, 1, 0.5)';
      ctx.lineWidth = 1;
      ctx.stroke();
      };

      points.forEach((point1, index) => {
      points.slice(index + 1).forEach(point2 => {
      drawLine(ctx, point1, point2);
      });
      });
      Этот код пройдётся по всем точкам и соединит каждую точку с каждой, создавая паутину. Убедись, что координаты точек преобразованы в координаты на канвасе.

      Если у тебя возникнут дополнительные вопросы или что-то будет непонятно, дай знать!
    2. bich1r Автор темы
      ChatGPT куда это вставлять
Top
Загрузка...