
ショコラ
GeminiAPI User location is not supported for the API use.のエラーがでた
GeminiAPIを使用したところ、突然「User location is not supported for the API use.」のエラーがでた。
何時間待っても直らなかった。
同じサーバー会社の別のサーバーからだとアクセスできることが分かった。
ということで、別のサーバーにプロクシを立てて、GeminiAPI を使うように一時的に回避したお話です。

もっさん先輩
別のサーバーは squid:3.3.8-23 を使って一発でプロキシサーバーにします。
docker run --rm --name squid -p 3128:3128 sameersbn/squid:3.3.8-23
↓バックグラウンドで実行は -d をつける。
docker run -d --rm --name squid -p 3128:3128 sameersbn/squid:3.3.8-23
cURL でプロキシの動作確認をしてみましょう。
curl https://answorz.com --proxy http://localhost:3128
google-gemini-php/laravel のソースをプロクシを使うように修正します。
public function make(): Client
{
// Guzzle を手動で作成してプロキシを設定
if ($proxy = env('GEMINI_PROXY')) {
$this->httpClient = new GuzzleClient(['proxy'=> $proxy]);
}
$client = $this->httpClient ??= Psr18ClientDiscovery::find();
if ($this->apiKey !== null) {
$this->headers['x-goog-api-key'] = trim($this->apiKey);
}
$streamHandler = $this->makeStreamHandler($client);
$transporter = new HttpTransporter(
client: $client,
baseUrl: $this->baseUrl,
headers: $this->headers,
queryParams: $this->queryParams,
streamHandler: $streamHandler,
);
return new Client(transporter: $transporter);
}
後は、.envにGEMINI_PROXYを設定します。
GEMINI_API_KEY=xxxx
GEMINI_PROXY=http://192.168.1.52:3128
以上