رفتن به شروع سریع

برنامه خط فرمان Go بسازید که به People API درخواست ارسال می‌کند.

«شروع‌های سریع» نحوه راه‌اندازی و اجرای برنامه‌ای را که میانای برنامه‌سازی کاربردی Google Workspace را فراخوانی می‌کند توضیح می‌دهد. این شروع سریع از یک رویکرد اصالت‌سنجی ساده‌شده استفاده می‌کند که برای محیط آزمایشی مناسب است. برای محیط تولید، توصیه می‌کنیم قبل‌از انتخاب اعتبارنامه دسترسی مناسب برای برنامه‌تان، درباره اصالت‌سنجی و صدور مجوز اطلاعات کسب کنید.

این راهنمای شروع سریع از کتابخانه‌های مشتری API توصیه‌شده Google Workspace برای مدیریت برخی‌از جزئیات جریان اصالت‌سنجی و صدور مجوز استفاده می‌کند.

اهداف

  • محیط خود را راه‌اندازی کنید.
  • نمونه را راه‌اندازی کنید.
  • نمونه را اجرا کنید.

پیش‌نیازها

  • دامنه Google Workspace با دسترسی API فعال.
  • یک «حساب Google» در آن دامنه با امتیازهای سرپرست.

راه‌اندازی محیط

برای تکمیل این راهنمای شروع سریع، محیط خود را راه‌اندازی کنید.

فعال کردن میانای برنامه‌سازی کاربردی

قبل‌از استفاده از Google API، باید آن‌ها را در پروژه Google Cloud روشن کنید. می‌توانید یک یا چند میانای برنامه‌سازی کاربردی را در یک پروژه Google Cloud روشن کنید.

اگر از پروژه Google Cloud جدیدی برای تکمیل این راهنمای شروع سریع استفاده می‌کنید، صفحه رضایت OAuth را پیکربندی کنید. اگر قبلاً این مرحله را برای پروژه Cloud خود تکمیل کرده‌اید، به بخش بعدی بروید.

  1. در «کنسول Google API»، به «منو» > پلاتفرم Google Auth > نمانام‌سازی بروید.

    رفتن به نمانام‌سازی

  2. اگر قبلاً پلاتفرم Google Auth را پیکربندی کرده‌اید، می‌توانید تنظیمات «صفحه رضایت OAuth» زیر را در نمانام‌سازی، مخاطب، و دسترسی به داده پیکربندی کنید. اگر پیامی با این مضمون دیدید: پلاتفرم «احراز هویت Google» هنوز پیکربندی نشده است، روی شروع به کار کلیک کنید:
    1. در بخش اطلاعات برنامه، در نام برنامه، نامی برای برنامه وارد کنید.
    2. در ایمیل پشتیبانی کاربر، نشانی ایمیل پشتیبانی را انتخاب کنید تا کاربران بتوانند درصورت داشتن سؤال درباره رضایتشان با شما تماس بگیرند.
    3. روی بعدی کلیک کنید.
    4. در بخش مخاطبان، داخلی را انتخاب کنید.
    5. روی بعدی کلیک کنید.
    6. در بخش اطلاعات تماس، نشانی ایمیلی را وارد کنید که بتوانید ازطریق آن از هرگونه تغییر در پروژه‌تان مطلع شوید.
    7. روی بعدی کلیک کنید.
    8. در بخش تکمیل، خط‌مشی داده‌های کاربر سرویس‌های Google API را مرور کنید و درصورت موافقت، با «خط‌مشی داده‌های کاربر سرویس‌های Google API» موافقم را انتخاب کنید.
    9. روی ادامه کلیک کنید.
    10. روی ایجاد کردن کلیک کنید.
  3. فعلاً می‌توانید از افزودن دامنه‌ها صرف‌نظر کنید. در آینده، وقتی برنامه‌ای برای استفاده در خارج از سازمان Google Workspace خود ایجاد می‌کنید، باید نوع کاربر را به خارجی تغییر دهید. سپس گستره‌های مجوزی را که برنامه‌تان نیاز دارد اضافه کنید. برای کسب اطلاعات بیشتر، راهنمای کامل پیکربندی موافقت OAuth را ببینید.

مجاز کردن اعتبارنامه‌ها برای برنامه رایانه

برای اصالت‌سنجی کاربران نهایی و دسترسی به داده‌های کاربر در برنامه‌تان، باید یک یا چند «شناسه کارخواه OAuth 2.0» ایجاد کنید. از شناسه کارخواه برای شناسایی یک برنامه در سرورهای OAuth Google استفاده می‌شود. اگر برنامه‌تان در چند پلاتفرم اجرا می‌شود، باید برای هر پلاتفرم شناسه مشتری جداگانه‌ای ایجاد کنید.
  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > برنامه رایانه کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقداماتی انجام می‌دهد، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه شما از هر دو گردش کار نماینده هوش مصنوعی و ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام مشتریان OAuth جداگانه ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  6. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

  7. فایل JSON بارگیری‌شده را به‌عنوان credentials.json ذخیره کنید و فایل را به دایرکتوری کاری‌تان منتقل کنید.

آماده کردن فضای کاری

  1. ایجاد فهرست راهنمای کار:

    mkdir quickstart
    
  2. به دایرکتوری کاری تغییر دهید:

    cd quickstart
    
  3. واحد جدید را مقداردهی اولیه کنید:

    go mod init quickstart
    
  4. کتابخانه کارخواه Go و بسته OAuth2.0 «میانای برنامه‌سازی کاربردی People» را دریافت کنید:

    go get google.golang.org/api/people/v1
    go get golang.org/x/oauth2/google
    

راه‌اندازی نمونه

  1. در فهرست راهنمای کاری‌تان، فایلی با نام quickstart.go ایجاد کنید.

  2. در فایل، کد زیر را جای‌گذاری کنید:

    people/quickstart/quickstart.go
    package main
    
    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    
    	"golang.org/x/oauth2"
    	"golang.org/x/oauth2/google"
    	"google.golang.org/api/option"
    	"google.golang.org/api/people/v1"
    )
    
    // Retrieve a token, saves the token, then returns the generated client.
    func getClient(config *oauth2.Config) *http.Client {
    	// The file token.json stores the user's access and refresh tokens, and is
    	// created automatically when the authorization flow completes for the first
    	// time.
    	tokFile := "token.json"
    	tok, err := tokenFromFile(tokFile)
    	if err != nil {
    		tok = getTokenFromWeb(config)
    		saveToken(tokFile, tok)
    	}
    	return config.Client(context.Background(), tok)
    }
    
    // Request a token from the web, then returns the retrieved token.
    func getTokenFromWeb(config *oauth2.Config) *oauth2.Token {
    	authURL := config.AuthCodeURL("state-token", oauth2.AccessTypeOffline)
    	fmt.Printf("Go to the following link in your browser then type the "+
    		"authorization code: \n%v\n", authURL)
    
    	var authCode string
    	if _, err := fmt.Scan(&authCode); err != nil {
    		log.Fatalf("Unable to read authorization code: %v", err)
    	}
    
    	tok, err := config.Exchange(context.TODO(), authCode)
    	if err != nil {
    		log.Fatalf("Unable to retrieve token from web: %v", err)
    	}
    	return tok
    }
    
    // Retrieves a token from a local file.
    func tokenFromFile(file string) (*oauth2.Token, error) {
    	f, err := os.Open(file)
    	if err != nil {
    		return nil, err
    	}
    	defer f.Close()
    	tok := &oauth2.Token{}
    	err = json.NewDecoder(f).Decode(tok)
    	return tok, err
    }
    
    // Saves a token to a file path.
    func saveToken(path string, token *oauth2.Token) {
    	fmt.Printf("Saving credential file to: %s\n", path)
    	f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)
    	if err != nil {
    		log.Fatalf("Unable to cache oauth token: %v", err)
    	}
    	defer f.Close()
    	json.NewEncoder(f).Encode(token)
    }
    
    func main() {
    	ctx := context.Background()
    	b, err := os.ReadFile("credentials.json")
    	if err != nil {
    		log.Fatalf("Unable to read client secret file: %v", err)
    	}
    
    	// If modifying these scopes, delete your previously saved token.json.
    	config, err := google.ConfigFromJSON(b, people.ContactsReadonlyScope)
    	if err != nil {
    		log.Fatalf("Unable to parse client secret file to config: %v", err)
    	}
    	client := getClient(config)
    
    	srv, err := people.NewService(ctx, option.WithHTTPClient(client))
    	if err != nil {
    		log.Fatalf("Unable to create people Client %v", err)
    	}
    
    	r, err := srv.People.Connections.List("people/me").PageSize(10).
    		PersonFields("names,emailAddresses").Do()
    	if err != nil {
    		log.Fatalf("Unable to retrieve people. %v", err)
    	}
    	if len(r.Connections) > 0 {
    		fmt.Print("List 10 connection names:\n")
    		for _, c := range r.Connections {
    			names := c.Names
    			if len(names) > 0 {
    				name := names[0].DisplayName
    				fmt.Printf("%s\n", name)
    			}
    		}
    	} else {
    		fmt.Print("No connections found.")
    	}
    }

اجرای نمونه

  1. در دایرکتوری کاری‌تان، نمونه را بسازید و اجرا کنید:

    go run quickstart.go
    
  1. اولین‌باری که نمونه را اجرا می‌کنید، از شما می‌خواهد دسترسی را مجاز کنید:
    1. اگر ازقبل به سیستم «حساب Google» خود وارد نشده‌اید، وقتی از شما خواسته شد به سیستم وارد شوید. اگر به سیستم چند حساب وارد شده‌اید، یک حساب را برای استفاده جهت صدور مجوز انتخاب کنید.
    2. روی Accept (پذیرش) کلیک کنید.

    برنامه Go شما اجرا می‌شود و People API را فراخوانی می‌کند.

    اطلاعات مجوز در سیستم فایل ذخیره می‌شود، بنابراین دفعه بعد که کد نمونه را اجرا می‌کنید، از شما درخواست مجوز نمی‌شود.

مراحل بعدی