برای آزمایش اولیه، میتوانید یک کلید API را کدنویسی کنید، اما این باید موقتی باشد زیرا ایمن نیست. در بخش ارائه صریح کلید API می توانید نمونه هایی برای کدگذاری سخت کلید API پیدا کنید.
تنظیم کلید API به عنوان متغیر محیطی
اگر متغیر محیطی GEMINI_API_KEY یا GOOGLE_API_KEY را تنظیم کنید، هنگام استفاده از یکی از کتابخانههای Gemini API، کلید API به طور خودکار توسط مشتری دریافت میشود. توصیه می شود فقط یکی از آن متغیرها را تنظیم کنید، اما اگر هر دو تنظیم شده باشند، GOOGLE_API_KEY اولویت دارد.
اگر از REST API یا جاوا اسکریپت در مرورگر استفاده می کنید، باید کلید API را به صراحت ارائه دهید.
در اینجا نحوه تنظیم کلید API به صورت محلی به عنوان متغیر محیطی GEMINI_API_KEY با سیستم عامل های مختلف آمده است.
Linux/macOS - Bash
Bash یک پیکربندی رایج ترمینال لینوکس و macOS است. با اجرای دستور زیر می توانید بررسی کنید که آیا یک فایل پیکربندی برای آن دارید:
~/.bashrc
اگر پاسخ "هیچ فایل یا دایرکتوری وجود ندارد" است، باید این فایل را ایجاد کرده و با اجرای دستورات زیر باز کنید یا از zsh استفاده کنید:
touch~/.bashrcopen~/.bashrc
در مرحله بعد، باید کلید API خود را با افزودن دستور صادرات زیر تنظیم کنید:
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
پس از ذخیره فایل، تغییرات را با اجرای:
source~/.bashrc
macOS - Zsh
Zsh یک پیکربندی رایج ترمینال لینوکس و macOS است. با اجرای دستور زیر می توانید بررسی کنید که آیا یک فایل پیکربندی برای آن دارید:
~/.zshrc
اگر پاسخ "هیچ فایل یا دایرکتوری وجود ندارد" است، باید این فایل را ایجاد کرده و با اجرای دستورات زیر باز کنید یا از bash استفاده کنید:
touch~/.zshrcopen~/.zshrc
در مرحله بعد، باید کلید API خود را با افزودن دستور صادرات زیر تنظیم کنید:
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
پس از ذخیره فایل، تغییرات را با اجرای:
source~/.zshrc
ویندوز
در تنظیمات سیستم عبارت "Environment Variables" را جستجو کنید
"متغیرهای کاربر" (برای کاربر فعلی) یا "متغیرهای سیستم" (برای همه کاربران - با احتیاط استفاده کنید) را ویرایش کنید.
متغیر را ایجاد کنید و export GEMINI_API_KEY=your_key_here اضافه کنید
تغییرات را اعمال کنید
ارائه کلید API به طور صریح
در برخی موارد، ممکن است بخواهید به صراحت یک کلید API ارائه دهید. به عنوان مثال:
شما در حال انجام یک تماس ساده API هستید و ترجیح می دهید کلید API را سخت کدنویسی کنید.
شما میخواهید بدون نیاز به کشف خودکار متغیرهای محیطی توسط کتابخانههای Gemini API کنترل صریح داشته باشید.
شما از محیطی استفاده می کنید که در آن متغیرهای محیطی پشتیبانی نمی شوند (مثلاً وب) یا در حال برقراری تماس های REST هستید.
در زیر مثال هایی برای نحوه ارائه یک کلید API به صراحت آورده شده است:
پایتون
fromgoogleimportgenaiclient=genai.Client(api_key="YOUR_API_KEY")response=client.models.generate_content(model="gemini-2.5-flash",contents="Explain how AI works in a few words")print(response.text)
جاوا اسکریپت
import{GoogleGenAI}from"@google/genai";constai=newGoogleGenAI({apiKey:"YOUR_API_KEY"});asyncfunctionmain(){constresponse=awaitai.models.generateContent({model:"gemini-2.5-flash",contents:"Explain how AI works in a few words",});console.log(response.text);}main();
برو
packagemainimport("context""fmt""log""google.golang.org/genai")funcmain(){ctx:=context.Background()client,err:=genai.NewClient(ctx,&genai.ClientConfig{APIKey:"YOUR_API_KEY",Backend:genai.BackendGeminiAPI,})iferr!=nil{log.Fatal(err)}result,err:=client.Models.GenerateContent(ctx,"gemini-2.5-flash",genai.Text("Explain how AI works in a few words"),nil,)iferr!=nil{log.Fatal(err)}fmt.Println(result.Text())}
جاوا
packagecom.example;importcom.google.genai.Client;importcom.google.genai.types.GenerateContentResponse;publicclassGenerateTextFromTextInput{publicstaticvoidmain(String[]args){Clientclient=Client.builder().apiKey("YOUR_API_KEY").build();GenerateContentResponseresponse=client.models.generateContent("gemini-2.5-flash","Explain how AI works in a few words",null);System.out.println(response.text());}}
استراحت
curl"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$YOUR_API_KEY"\-H'Content-Type: application/json'\-XPOST\-d'{ "contents": [ { "parts": [ { "text": "Explain how AI works in a few words" } ] } ] }'
کلید API خود را ایمن نگه دارید
با کلید Gemini API خود مانند یک رمز عبور رفتار کنید. در صورت به خطر افتادن، دیگران میتوانند از سهمیه پروژه شما استفاده کنند، هزینههایی را متحمل شوند (در صورت فعال بودن صورتحساب)، و به دادههای خصوصی شما، مانند فایلها، دسترسی داشته باشند.
قوانین امنیتی حیاتی
هرگز کلیدهای API را به کنترل منبع متعهد نکنید. کلید API خود را در سیستم های کنترل نسخه مانند Git بررسی نکنید.
هرگز کلیدهای API را در سمت مشتری قرار ندهید. از کلید API خود مستقیماً در وب یا برنامه های تلفن همراه در حال تولید استفاده نکنید. کلیدهای کد سمت سرویس گیرنده (شامل کتابخانههای جاوا اسکریپت/تایپ اسکریپت و تماسهای REST) قابل استخراج هستند.
بهترین شیوه ها
استفاده از تماسهای سمت سرور با کلیدهای API ایمنترین راه برای استفاده از کلید API تماس با Gemini API از یک برنامه سمت سرور است که در آن میتوان کلید را محرمانه نگه داشت.
استفاده از نشانه های زودگذر برای دسترسی سمت سرویس گیرنده (فقط Live API): برای دسترسی مستقیم سمت کلاینت به Live API، می توانید از نشانه های زودگذر استفاده کنید. آنها با خطرات امنیتی کمتری همراه هستند و می توانند برای استفاده در تولید مناسب باشند. راهنمای نشانه های زودگذر را برای اطلاعات بیشتر مرور کنید.
اضافه کردن محدودیت به کلید خود را در نظر بگیرید: میتوانید با افزودن محدودیتهای کلید API، مجوزهای یک کلید را محدود کنید. این امر آسیب احتمالی را در صورت نشت کلید به حداقل می رساند.
برای برخی از بهترین شیوه های عمومی، می توانید این مقاله پشتیبانی را نیز مرور کنید.
تاریخ آخرین بهروزرسانی 2025-08-22 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-22 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Using Gemini API keys\n\nTo use the Gemini API, you need an API key. You can create a key for free with a\nfew clicks in [Google AI Studio](https://aistudio.google.com/app/apikey).\n\nOnce you have an API key, you have the following options to connect to the\nGemini API:\n\n- [Setting your API key as an environment variable](#set-api-env-var)\n- [Providing your API key explicitly](#provide-api-key-explicitly)\n\nFor initial testing, you can hard code an API key, but this should only be\ntemporary since it's not secure. You can find examples for hard coding the API\nkey in [Providing API key explicitly](#provide-api-key-explicitly) section.\n\nSetting API key as environment variable\n---------------------------------------\n\nIf you set the environment variable `GEMINI_API_KEY` or `GOOGLE_API_KEY`, the\nAPI key will automatically be picked up by the client when using one of the\n[Gemini API libraries](/gemini-api/docs/libraries). It's recommended that you\nset only one of those variables, but if both are set, `GOOGLE_API_KEY` takes\nprecedence.\n\nIf you're using the REST API, or JavaScript on the browser, you will need to\nprovide the API key explicitly.\n\nHere is how you can set your API key locally as the environment variable\n`GEMINI_API_KEY` with different operating systems. \n\n### Linux/macOS - Bash\n\nBash is a common Linux and macOS terminal configuration. You can check if\nyou have a configuration file for it by running the following command: \n\n ~/.bashrc\n\nIf the response is \"No such file or directory\", you will need to create this\nfile and open it by running the following commands, or use `zsh`: \n\n touch ~/.bashrc\n open ~/.bashrc\n\nNext, you need to set your API key by adding the following export command: \n\n export GEMINI_API_KEY=\u003cYOUR_API_KEY_HERE\u003e\n\nAfter saving the file, apply the changes by running: \n\n source ~/.bashrc\n\n### macOS - Zsh\n\nZsh is a common Linux and macOS terminal configuration. You can check if\nyou have a configuration file for it by running the following command: \n\n ~/.zshrc\n\nIf the response is \"No such file or directory\", you will need to create this\nfile and open it by running the following commands, or use `bash`: \n\n touch ~/.zshrc\n open ~/.zshrc\n\nNext, you need to set your API key by adding the following export command: \n\n export GEMINI_API_KEY=\u003cYOUR_API_KEY_HERE\u003e\n\nAfter saving the file, apply the changes by running: \n\n source ~/.zshrc\n\n### Windows\n\n1. Search for \"Environment Variables\" in the system settings\n2. Edit either \"User variables\" (for current user) or \"System variables\" (for all users - use with caution).\n3. Create the variable and add `export GEMINI_API_KEY=your_key_here`\n4. Apply the changes\n\nProviding API key explicitly\n----------------------------\n\nIn some cases, you may want to explicitly provide an API key. For example:\n\n- You're doing a simple API call and prefer hard coding the API key.\n- You want explicit control without having to rely on automatic discovery of environment variables by the Gemini API libraries\n- You're using an environment where environment variables are not supported (e.g web) or you are making REST calls.\n\nBelow are examples for how you can provide an API key explicitly: \n\n### Python\n\n from google import genai\n\n client = genai.Client(api_key=\"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\")\n\n response = client.models.generate_content(\n model=\"gemini-2.5-flash\", contents=\"Explain how AI works in a few words\"\n )\n print(response.text)\n\n### JavaScript\n\n import { GoogleGenAI } from \"@google/genai\";\n\n const ai = new GoogleGenAI({ apiKey: \"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\" });\n\n async function main() {\n const response = await ai.models.generateContent({\n model: \"gemini-2.5-flash\",\n contents: \"Explain how AI works in a few words\",\n });\n console.log(response.text);\n }\n\n main();\n\n### Go\n\n package main\n\n import (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n )\n\n func main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, &genai.ClientConfig{\n APIKey: \"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\",\n Backend: genai.BackendGeminiAPI,\n })\n if err != nil {\n log.Fatal(err)\n }\n\n result, err := client.Models.GenerateContent(\n ctx,\n \"gemini-2.5-flash\",\n genai.Text(\"Explain how AI works in a few words\"),\n nil,\n )\n if err != nil {\n log.Fatal(err)\n }\n fmt.Println(result.Text())\n }\n\n### Java\n\n package com.example;\n\n import com.google.genai.Client;\n import com.google.genai.types.GenerateContentResponse;\n\n public class GenerateTextFromTextInput {\n public static void main(String[] args) {\n Client client = Client.builder().apiKey(\"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\").build();\n\n GenerateContentResponse response =\n client.models.generateContent(\n \"gemini-2.5-flash\",\n \"Explain how AI works in a few words\",\n null);\n\n System.out.println(response.text());\n }\n }\n\n### REST\n\n curl \"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\" \\\n -H 'Content-Type: application/json' \\\n -X POST \\\n -d '{\n \"contents\": [\n {\n \"parts\": [\n {\n \"text\": \"Explain how AI works in a few words\"\n }\n ]\n }\n ]\n }'\n\nKeep your API key secure\n------------------------\n\nTreat your Gemini API key like a password. If compromised, others can use your\nproject's quota, incur charges (if billing is enabled), and access your\nprivate data, such as files.\n\n### Critical security rules\n\n- **Never commit API keys to source control.** Do not check your API key into version control systems like Git.\n\n- **Never expose API keys on the client-side.** Do not use your API key directly\n in web or mobile apps in production. Keys in client-side code\n (including our JavaScript/TypeScript libraries and REST calls) can be\n extracted.\n\n### Best practices\n\n- **Use server-side calls with API keys** The most secure way to use your API\n key is to call the Gemini API from a server-side application where the key\n can be kept confidential.\n\n- **Use ephemeral tokens for client-side access (Live API only):** For direct\n client-side access to the Live API, you can use ephemeral tokens. They come with\n lower security risks and can be suitable for production use. Review\n [ephemeral tokens](/gemini-api/docs/ephemeral-tokens) guide for more information.\n\n- **Consider adding restrictions to your key:** You can limit a key's permissions\n by adding [API key restrictions](https://cloud.google.com/api-keys/docs/add-restrictions-api-keys#add-api-restrictions).\n This minimizes the potential damage if the key is ever leaked.\n\nFor some general best practices, you can also review this\n[support article](https://support.google.com/googleapi/answer/6310037)."]]