Частые вопросы: невозможность запроса квоты、истечение срока действия Token、проблемы с правами
При использовании плагина opencode-mystatus вы можете столкнуться с различными ошибками: невозможность чтения файлов аутентификации、истечение срока действия OAuth Token、недостаточность прав GitHub Copilot、сбой запросов API и т. д. Эти частые проблемы обычно можно решить простой настройкой или повторной авторизацией. Это руководство собирает все шаги устранения частых ошибок, помогая быстро определить корень проблемы.
Что вы научитесь делать
- Быстро определить причину сбоя запроса mystatus
- Решить проблему истечения срока действия Token OpenAI
- Настроить Fine-grained PAT GitHub Copilot
- Обработать отсутствие project_id в Google Cloud
- Различные сбои запросов API и тайм-ауты
Ваша текущая проблема
Вы выполняете /mystatus для запроса квоты, но видите различные сообщения об ошибках, не зная, с чего начать устранение неполадок.
Когда использовать этот метод
- Когда видите любое сообщение об ошибке: это руководство охватывает все частые ошибки
- При настройке новой учётной записи: проверьте, правильна ли конфигурация
- При внезапном сбое запроса квоты: возможно, срок действия Token истёк или права изменились
Принцип устранения ошибок
При встрече с ошибкой сначала посмотрите на ключевые слова сообщения об ошибке, затем сопоставьте с решением в этом руководстве. Большинство ошибок имеют чёткие сообщения подсказки.
Основная идея
Механизм обработки ошибок mystatus разделён на три уровня:
- Уровень чтения файлов аутентификации: проверка наличия
auth.jsonи правильности формата - Уровень запроса платформы: каждая платформа запрашивается независимо, отказ одной платформы не влияет на другие
- Уровень запроса API: сетевые запросы могут истечь по тайм-ауту или вернуть ошибку, но инструмент продолжит пытаться запрашивать другие платформы
Это означает:
- При отказе одной платформы другие платформы будут по-прежнему нормально отображаться
- Сообщение об ошибке чётко укажет, какая платформа имеет проблему
- Большинство ошибок можно решить путём настройки или повторной авторизации
Список устранения проблем
Проблема 1: Невозможность чтения файла аутентификации
Сообщение об ошибке:
❌ Невозможно прочитать файл аутентификации: ~/.local/share/opencode/auth.json
Ошибка: ENOENT: no such file or directoryПричина:
- Файл аутентификации OpenCode не существует
- Ещё не настроена какая-либо учётная запись платформы
Решение:
Подтвердите, что OpenCode установлен и настроен
- Подтвердите, что вы уже настроили хотя бы одну платформу в OpenCode (OpenAI、智谱 AI и т. д.)
- Если нет, сначала завершите авторизацию в OpenCode
Проверьте путь к файлу
- Файл аутентификации OpenCode должен быть в
~/.local/share/opencode/auth.json - Если вы используете пользовательский каталог конфигурации, подтвердите, правильный ли путь к файлу
- Файл аутентификации OpenCode должен быть в
Проверьте формат файла
- Подтвердите, что
auth.jsonявляется действительным JSON файлом - Содержимое файла должно включать хотя бы информацию об одной платформе аутентификации
- Подтвердите, что
Что вы должны увидеть: После повторного выполнения /mystatus, вы должны увидеть информацию о квоте хотя бы одной платформы.
Проблема 2: Не найдена ни одна настроенная учётная запись
Сообщение об ошибке:
Не найдена ни одна настроенная учётная запись.
Поддерживаемые типы учётных записей:
- OpenAI (Пользователи подписки Plus/Team/Pro)
- 智谱 AI (Coding Plan)
- Z.ai (Coding Plan)
- Google Cloud (Antigravity)Причина:
auth.jsonсуществует, но в нём нет действительной конфигурации- Существующая конфигурация имеет неправильный формат (например, отсутствие необходимых полей)
Решение:
Проверьте содержимое auth.json Откройте
~/.local/share/opencode/auth.json, подтвердите, что есть хотя бы одна конфигурация платформы:json{ "openai": { "type": "oauth", "access": "eyJ...", "expires": 1738000000000 } }Настройте хотя бы одну платформу
- Завершите авторизацию OAuth в OpenCode
- Или вручную добавьте API Key платформы (智谱 AI、Z.ai)
Справочник по формату конфигурации Требования к конфигурации каждой платформы:
- OpenAI: должен иметь
type: "oauth"и tokenaccess - 智谱 AI / Z.ai: должен иметь
type: "api"иkey - GitHub Copilot: должен иметь
type: "oauth"и tokenrefresh - Google Cloud: не зависит от
auth.json, требуется отдельная настройка (см. проблему 6)
- OpenAI: должен иметь
Проблема 3: Истечение срока действия OAuth Token OpenAI
Сообщение об ошибке:
⚠️ Авторизация OAuth истекла, пожалуйста используйте модель OpenAI в OpenCode один раз для обновления авторизации.Причина:
- Срок действия OAuth Token OpenAI ограничен, после истечения невозможно запросить квоту
- Время истечения Token хранится в поле
expiresвauth.json
Решение:
Используйте модель OpenAI один раз в OpenCode
- Задайте вопрос ChatGPT или Codex
- OpenCode автоматически обновит Token и обновит
auth.json
Подтвердите обновление Token
- Посмотрите поле
expiresвauth.json - Подтвердите, что это временная метка будущего времени
- Посмотрите поле
Снова выполните /mystatus
- Теперь вы должны нормально запросить квоту OpenAI
Зачем нужно повторно использовать модель: OAuth Token OpenAI имеет механизм истечения, использование модели вызовет обновление Token. Это функция безопасности официального процесса аутентификации OpenCode.
Проблема 4: Сбой запроса API (общий)
Сообщение об ошибке:
Сбой запроса OpenAI API (401): Unauthorized
Сбой запроса 智谱 API (403): Forbidden
Сбой запроса Google API (500): Internal Server ErrorПричина:
- Token или API Key недействителен
- Проблема с сетевым соединением
- API сервис временно недоступен
- Недостаточность прав (некоторые платформы требуют специальных прав)
Решение:
Проверьте Token или API Key
- OpenAI: подтвердите, что token
accessне истёк (см. проблему 3) - 智谱 AI / Z.ai: подтвердите, что
keyправильный, без лишних пробелов - GitHub Copilot: подтвердите, что token
refreshдействителен
- OpenAI: подтвердите, что token
Проверьте сетевое соединение
- Подтвердите нормальность сети
- Некоторые платформы могут иметь географические ограничения (например, Google Cloud)
Попробуйте повторную авторизацию
- Повторно выполните авторизацию OAuth в OpenCode
- Или вручную обновите API Key
Просмотрите конкретный код состояния HTTP
401/403: проблема с правами, обычно Token или API Key недействителен500/503: ошибка на стороне сервера, обычно API временно недоступен, попробуйте позже429: слишком частые запросы, нужно подождать некоторое время
Проблема 5: Тайм-аут запроса
Сообщение об ошибке:
Тайм-аут запроса (10 секунд)Причина:
- Медленное сетевое соединение
- Слишком долгое время ответа API
- Брандмауэр или прокси блокируют запрос
Решение:
Проверьте сетевое соединение
- Подтвердите стабильность сети
- Попробуйте посетить веб-сайт платформы, подтвердите нормальный доступ
Проверьте настройки прокси
- Если вы используете прокси, подтвердите правильность конфигурации прокси
- Некоторые платформы могут требовать специальную конфигурацию прокси
Попробуйте снова
- Иногда это только временная сетевая флуктуация
- Повторная попытка обычно решит проблему
Проблема 6: Запрос квоты GitHub Copilot временно недоступен
Сообщение об ошибке:
⚠️ Запрос квоты GitHub Copilot временно недоступен.
Новая интеграция OAuth OpenCode не поддерживает доступ к API квоты.
Решение:
1. Создайте fine-grained PAT (访问 https://github.com/settings/tokens?type=beta)
2. В 'Account permissions' установите 'Plan' на 'Read-only'
3. Создайте конфигурационный файл и заполните следующее содержание (включая необходимое поле `tier`):
```json
{
"token": "github_pat_xxx...",
"username": "ваше_имя_пользователя",
"tier": "pro"
}Другие методы: • Нажмите значок Copilot на строке состояния в VS Code для просмотра квоты • Посетите https://github.com/settings/billing для просмотра использования
**Причина**:
- Официальная интеграция OAuth OpenCode использует новый процесс аутентификации
- Новый OAuth Token не имеет прав `copilot`, не может вызвать внутренний API квоты
- Это официальное ограничение безопасности OpenCode
**Решение** (рекомендуется):
1. **Создайте Fine-grained PAT**
- Посетите https://github.com/settings/tokens?type=beta
- Нажмите "Generate new token" → "Fine-grained token"
- Заполните имя Token (например, "OpenCode Copilot Quota")
2. **Настройте права**
- В "Account permissions" найдите право "Plan"
- Установите на "Read-only"
- Нажмите "Generate token"
3. **Создайте конфигурационный файл**
Создайте `~/.config/opencode/copilot-quota-token.json`:
```json
{
"token": "github_pat_xxx...",
"username": "ваше_имя_пользователя_GitHub",
"tier": "pro"
}Описание поля tier:
free:Copilot Free (50 запросов в месяц)pro:Copilot Pro (300 запросов в месяц)pro+:Copilot Pro+ (1500 запросов в месяц)business:Copilot Business (300 запросов в месяц)enterprise:Copilot Enterprise (1000 запросов в месяц)
- Снова выполните /mystatus
- Теперь вы должны нормально запросить квоту GitHub Copilot
Альтернативное решение:
Если вы не хотите настраивать PAT, можете:
- Нажать значок Copilot на строке состояния в VS Code для просмотра квоты
- Посетить https://github.com/settings/billing для просмотра использования
Проблема 7: Отсутствует project_id Google Cloud
Сообщение об ошибке:
⚠️ Отсутствует project_id, невозможно запросить квоту.Причина:
- В конфигурации учётной записи Google Cloud отсутствует
projectIdилиmanagedProjectId - mystatus нужен ID проекта для вызова API Google Cloud
Решение:
Проверьте antigravity-accounts.json Откройте конфигурационный файл, подтвердите, что конфигурация учётной записи включает
projectIdилиmanagedProjectId:bash~/.config/opencode/antigravity-accounts.jsonpowershell%APPDATA%\opencode\antigravity-accounts.jsonjson{ "accounts": [ { "email": "your-email@gmail.com", "refreshToken": "1//xxx", "projectId": "your-project-id", "addedAt": 1738000000000, "lastUsed": 1738000000000, "rateLimitResetTimes": {} } ] }Как получить project_id
- Посетите https://console.cloud.google.com/
- Выберите ваш проект
- В информации о проекте найдите "Project ID" (ID проекта)
- Скопируйте его в конфигурационный файл
Если нет project_id
- Если вы используете управляемый проект, возможно, нужно использовать
managedProjectId - Свяжитесь с администратором Google Cloud для подтверждения ID проекта
- Если вы используете управляемый проект, возможно, нужно использовать
Проблема 8: API 智谱 AI / Z.ai возвращает недействительные данные
Сообщение об ошибке:
Сбой запроса 智谱 API (200): {"code": 401, "msg": "Invalid API key"}
Сбой запроса Z.ai API (200): {"code": 400, "msg": "Bad request"}Причина:
- API Key недействителен или имеет неправильный формат
- API Key истёк или был отозван
- Учётная запись не имеет прав соответствующей службы
Решение:
Подтвердите правильность API Key
- Войдите в консоль 智谱 AI или Z.ai
- Проверьте, действителен ли ваш API Key
- Подтвердите отсутствие лишних пробелов или разрывов строки
Проверьте права API Key
- 智谱 AI: подтвердите, что у вас есть право "Coding Plan"
- Z.ai: подтвердите, что у вас есть право "Coding Plan"
Повторно сгенерируйте API Key
- Если с API Key есть проблемы, можно повторно сгенерировать в консоли
- Обновите поле
keyвauth.json
Контрольная точка ✅
Подтвердите, что вы можете самостоятельно решать частые проблемы:
| Навык | Метод проверки | Ожидаемый результат |
|---|---|---|
| Устранение проблем с файлом аутентификации | Проверьте, существует ли auth.json и правильный ли формат | Файл существует, формат JSON правильный |
| Обновление Token OpenAI | Используйте модель OpenAI один раз в OpenCode | Token обновлён, можно нормально запросить квоту |
| Настройка PAT Copilot | Создайте copilot-quota-token.json | Можно нормально запросить квоту Copilot |
| Обработка ошибок API | Просмотрите код состояния HTTP и примите соответствующие меры | Знать значение кодов ошибок 401/403/500 и т. д. |
| Настройка Google project_id | Добавьте projectId в antigravity-accounts.json | Можно нормально запросить квоту Google Cloud |
Итог урока
Обработка ошибок mystatus разделена на три уровня: чтение файла аутентификации、запрос платформы、запрос API. При встрече с ошибкой сначала посмотрите на ключевые слова сообщения об ошибке, затем сопоставьте с решением. Наиболее частые проблемы включают:
- Проблемы с файлом аутентификации: проверьте, существует ли
auth.jsonи правильный ли формат - Истечение срока действия Token: используйте соответствующую модель один раз в OpenCode для обновления Token
- Ошибки API: судите, проблема с правами или сервером, на основе кода состояния HTTP
- Специальные права Copilot: новая интеграция OAuth требует настройки Fine-grained PAT
- Настройка Google: нужен project_id для запроса квоты
Большинство ошибок можно решить путём настройки или повторной авторизации, отказ одной платформы не влияет на запросы других платформ.
Предварительный обзор следующего урока
На следующем уроке мы изучим Безопасность и конфиденциальность: доступ к локальным файлам、маскировка API、официальные интерфейсы。
Вы узнаете:
- Как mystatus защищает ваши конфиденциальные данные
- Принцип автоматической маскировки API Key
- Почему плагин — безопасный локальный инструмент
- Гарантия отсутствия хранения и загрузки данных
Приложение: справочник по исходному коду
Нажмите для просмотра местоположения исходного кода
Время обновления: 2026-01-23
| Функция | Путь к файлу | Номер строки |
|---|---|---|
| Основная логика обработки ошибок | plugin/mystatus.ts | 41-87 |
| Чтение файла аутентификации | plugin/mystatus.ts | 38-46 |
| Подсказка о не найденных учётных записях | plugin/mystatus.ts | 78-80 |
| Сбор и суммирование результатов | plugin/mystatus.ts | 58-89 |
| Проверка истечения срока действия Token OpenAI | plugin/lib/openai.ts | 216-221 |
| Обработка ошибок API | plugin/lib/openai.ts | 149-152 |
| Чтение PAT Copilot | plugin/lib/copilot.ts | 122-151 |
| Подсказка об отказе OAuth Copilot | plugin/lib/copilot.ts | 298-303 |
| Проверка project_id Google | plugin/lib/google.ts | 232-234 |
| Обработка ошибок API 智谱 | plugin/lib/zhipu.ts | 94-103 |
| Определение сообщений об ошибках | plugin/lib/i18n.ts | 66-123 (китайский), 144-201 (английский) |
Ключевые константы:
HIGH_USAGE_THRESHOLD = 80:порог предупреждения высокого использования (plugin/lib/types.ts:111)
Ключевые функции:
collectResult(): сбор результатов запроса в массивы results и errors (plugin/mystatus.ts:100-116)queryOpenAIUsage(): запрос квоты OpenAI, включая проверку истечения срока действия Token (plugin/lib/openai.ts:207-236)readQuotaConfig(): чтение конфигурации PAT Copilot (plugin/lib/copilot.ts:122-151)fetchAccountQuota(): запрос квоты одной учётной записи Google Cloud (plugin/lib/google.ts:218-256)fetchUsage(): запрос использования 智谱/Z.ai (plugin/lib/zhipu.ts:81-106)