عیب‌یابی برنامه‌های Google Chat

به‌عنوان توسعه‌دهنده برنامه‌های Google Chat، ممکن است نیاز داشته باشید کد را اشکال‌زدایی کنید تا تغییرات را آزمایش کنید یا مشکلات پیچیده را عیب‌یابی کنید. اشکال‌زدایی برنامه‌های Chat بسته به معماری برنامه، کاری که برنامه انجام می‌دهد، نحوه استقرار برنامه، و اولویت‌های شما به روش‌های مختلفی انجام می‌شود.

این صفحه نحوه اشکال‌زدایی برنامه «گپ HTTP» بااستفاده از ngrok را توضیح می‌دهد. ngrok پلاتفرم یکپارچه ورودی است که می‌توانید از آن برای آزمایش محیط‌های توسعه محلی استفاده کنید. در این راهنما، تغییرات کد را در محیط محلی آزمایش می‌کنید و مشکلات را در محیط از دور عیب‌یابی می‌کنید.

عیب‌یابی از محیط توسعه محلی

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

عیب‌یابی از محیط توسعه محلی

شکل ۱. عیب‌یابی در محیط توسعه محلی.

کارگاه

Node.js

Python

جاوا

پیش‌نیازها

Node.js

  • جدیدترین نسخه‌های node و npm نصب‌شده در محیط محلی شما.
  • جدیدترین نسخه nodemon در محیط محلی شما نصب شده است و برای اهداف بار کردن مجدد خودکار استفاده می‌شود:

    npm install -g nodemon
  • برنامه Chat پروتکل انتقال ابرمتن که برای پیام‌رسانی پیکربندی شده است. می‌توانید بخش‌های پیش‌نیازها، راه‌اندازی محیط، و انتشار برنامه در Google Chat از راهنمای شروع سریع را دنبال کنید. تنها تفاوت این است که باید نام برنامه را روی Debug App و نشانی وب نقطه پایان HTTP را روی چیزی مثل http://example.com تنظیم کنید.

  • «محیط توسعه یکپارچه» (IDE) که در محیط محلی شما راه‌اندازی شده باشد و بتواند اشکال‌زدایی کند. در این راهنما، از Visual Studio Code IDE و ویژگی‌های عیب‌یابی پیش‌فرض آن برای اهداف نمایشی استفاده می‌کنیم.

  • Git در محیط محلی‌تان نصب شد.

  • حساب ngrok.

Python

  • جدیدترین نسخه python3 نصب‌شده در محیط محلی شما.
  • جدیدترین نسخه pip و virtualenv در محیط محلی شما نصب شده است و از آن‌ها برای مدیریت بسته‌های Python و محیط‌های مجازی به‌ترتیب استفاده می‌شود.
  • برنامه Chat پروتکل انتقال ابرمتن که برای پیام‌رسانی پیکربندی شده است. می‌توانید بخش‌های پیش‌نیازها، راه‌اندازی محیط، و انتشار برنامه در Google Chat از راهنمای شروع سریع را دنبال کنید. تنها تفاوت این است که باید نام برنامه را روی Debug App و نشانی وب نقطه پایان HTTP را روی چیزی مثل http://example.com تنظیم کنید.
  • «محیط توسعه یکپارچه» (IDE) که در محیط محلی شما راه‌اندازی شده باشد و بتواند اشکال‌زدایی کند. در این راهنما، از Visual Studio Code IDE و ویژگی‌های عیب‌یابی پیش‌فرض آن برای اهداف نمایشی استفاده می‌کنیم.
  • Git در محیط محلی‌تان نصب شد.
  • حساب ngrok.
  • جدیدترین نسخه gcloud نصب شده و مقداردهی اولیه شده در محیط محلی شما.

جاوا

  • جدیدترین نسخه پایدار Java SE 11's JDK نصب‌شده در محیط محلی شما.
  • جدیدترین نسخه Apache Maven نصب‌شده در محیط محلی شما، برای مدیریت پروژه‌های Java استفاده می‌شود.
  • برنامه Chat پروتکل انتقال ابرمتن که برای پیام‌رسانی پیکربندی شده است. می‌توانید بخش‌های پیش‌نیازها، راه‌اندازی محیط، و انتشار برنامه در Google Chat از راهنمای شروع سریع را دنبال کنید. تنها تفاوت این است که باید نام برنامه را روی Debug App و راه‌انداز پیام نشانی وب نقطه پایان HTTP را روی چیزی مثل http://example.com تنظیم کنید.
  • «محیط توسعه یکپارچه» (IDE) که در محیط محلی شما راه‌اندازی شده باشد و بتواند اشکال‌زدایی کند. در این راهنما، از Visual Studio Code IDE و ویژگی‌های عیب‌یابی پیش‌فرض آن برای اهداف نمایشی استفاده می‌کنیم.
  • Git در محیط محلی‌تان نصب شد.
  • حساب ngrok.
  • جدیدترین نسخه gcloud نصب شده و مقداردهی اولیه شده در محیط محلی شما.

دردسترس عموم قرار دادن سرویس localhost

باید محیط محلی‌تان را به اینترنت متصل کنید تا برنامه Chat بتواند به آن دسترسی داشته باشد. از برنامه ngrok برای هدایت درخواست‌های HTTP که به نشانی وب عمومی ارسال شده‌اند به محیط محلی‌تان استفاده می‌شود.

  1. در مرورگری در محیط محلی‌تان، به سیستم حساب ngrok خود وارد شوید.
  2. برنامه را نصب کنید و authtoken را در محیط محلی خود راه‌اندازی کنید.
  3. در حساب ngrok خود، دامنه ایستا ایجاد کنید، در دستورالعمل‌های این راهنما به‌عنوان NGROK_STATIC_DOMAIN به آن ارجاع داده می‌شود.

پیکربندی برنامه Chat

برنامه Chat را پیکربندی کنید تا همه درخواست‌های HTTP خود را به دامنه ایستا شما ارسال کند.

  1. در «کنسول Google API»، صفحه Google Chat API را باز کنید:

    رفتن به صفحه «میانای برنامه‌سازی کاربردی Google Chat»

  2. روی زبانه پیکربندی کلیک کنید.

  3. به ویژگی‌های تعاملی > تنظیمات اتصال > راه‌اندازها بروید و نشانی وب نقطه پایانی HTTP را برای راه‌اندازهایی که می‌خواهید آزمایش کنید (مثل پیام) روی این تنظیم کنید:

    https://NGROK_STATIC_DOMAIN
    

    ‫NGROK_STATIC_DOMAIN را با دامنه ایستا در حساب ngrok خود جایگزین کنید.

  4. روی ذخیره کلیک کنید.

برنامه Chat همه درخواست‌های HTTP خود را به دامنه ایستا ارسال می‌کند

شکل ۲. برنامه Chat همه درخواست‌های HTTP خود را به دامنه ایستا ارسال می‌کند. خدمات عمومی ngrok به‌عنوان پلی بین برنامه Chat و کد برنامه‌ای که به‌صورت محلی اجرا می‌شود عمل می‌کند.

آزمایش کردن برنامه Chat

می‌توانید برنامه Chat خود را به‌صورت محلی پیاده‌سازی، پیکربندی، آزمایش، اشکال‌زدایی، و بارگیری مجدد خودکار کنید.

Node.js

  1. مخزن googleworkspace/add-ons-samples را از GitHub در محیط محلی خودتان شبیه‌سازی کنید، این مخزن حاوی کد برنامه برای اجرا است:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. از محیط توسعه نرم‌افزار یکپارچه (IDE) Visual Studio Code نصب‌شده در محیط محلی‌تان، کارهای زیر را انجام دهید:

    1. در پنجره جدید، پوشه add-ons-samples/node/chat/avatar-app را باز کنید.
    2. با افزودن دو دستورگان در فایل package.json، برنامه را برای اشکال‌زدایی بار کردن مجدد خودکار پیکربندی کنید:

      {
          ...
          "scripts": {
              ...
              "debug": "node --inspect index.js",
              "debug-watch": "nodemon --watch ./ --exec npm run debug"
          }
          ...
      }
      
    3. از فهرست راهنمای ریشه، برنامه را نصب کنید:

      npm install
    4. راه‌اندازی‌ای به‌نام Debug Watch ایجاد و پیکربندی کنید که با ایجاد فایل .vscode/launch.json در دایرکتوری ریشه، برنامه debug-watch را راه‌اندازی کند:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. نقطه گسستی اضافه کنید که پردازش درخواست HTTP را در فایل index.js متوقف کند، و با پیکربندی Debug Watch که قبلاً اضافه شده است، اجرا و اشکال‌زدایی را شروع کنید. اکنون برنامه درحال اجرا است و در درگاه 9000 به درخواست‌های HTTP گوش می‌دهد.

      برنامه درحال اجرا است و در درگاه ۹۰۰۰ به درخواست‌های HTTP گوش می‌دهد

      شکل ۳. برنامه درحال اجرا است و در درگاه 9000 به درخواست‌های HTTP گوش می‌دهد.

  3. برنامه ngrok را در محیط محلی‌تان راه‌اندازی کنید:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    ‫NGROK_STATIC_DOMAIN را با دامنه ایستا در حساب ngrok خود جایگزین کنید. اکنون همه درخواست‌ها به محیط محلی شما و درگاه مورد استفاده برنامه هدایت می‌شوند.

    پایانه با سرور `ngrok` درحال اجرا و
هدایت کردن

    شکل ۴. پایانه با سرور ngrok درحال اجرا و هدایت مجدد.

  4. رابط وب نیز توسط برنامه ngrok در میزبان محلی شما شروع می‌شود، می‌توانید با باز کردن آن در مرورگر، همه فعالیت‌ها را پایش کنید.

    میانای وب میزبانی‌شده توسط برنامه `ngrok` که هیچ درخواست HTTP
را نشان نمی‌دهد

    شکل ۵. میانای وب میزبانی‌شده توسط برنامه ngrok که هیچ درخواست HTTP را نشان نمی‌دهد.

  5. برنامه Chat خود را با ارسال پیام مستقیم به آن آزمایش کنید:

    • ‫Google Chat را باز کنید.

      رفتن به Google Chat

    • روی گپ جدید کلیک کنید.

    • در چارگوش گفتگو، نام برنامه Chat خود را وارد کنید.

    • در نتایج جستجو، برنامه Chat را پیدا کنید، روی افزودن > Chat کلیک کنید.

    • در فضای پیام مستقیم، Hello را تایپ کنید و enter را فشار دهید. برنامه Chat شما پاسخ نمی‌دهد زیرا به‌طور فعال درحال اشکال‌زدایی است.

  6. در Visual Studio Code در محیط محلی‌تان، می‌توانید ببینید که اجرا در نقطه گسستی که تنظیم شده بود متوقف شده است.

    اجرا در نقطه گسستی که تنظیم شده بود موقتاً متوقف شد

    شکل ۶. اجرا در نقطه گسستی که تنظیم شده است موقتاً متوقف می‌شود.

  7. وقتی اجرا را از اشکال‌زدای Visual Studio Code قبل‌از اینکه Google Chat برنامه Chat را منقضی کند ازسر می‌گیرید به پیامتان پاسخ می‌دهد.

  8. می‌توانید گزارش‌های درخواست و پاسخ HTTP را از واسط وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان بررسی کنید.

    درخواست HTTP از رابط وب میزبانی‌شده توسط برنامه `ngrok`

    شکل ۷. درخواست HTTP از رابط وب میزبانی‌شده توسط برنامه ngrok.

  9. برای تغییر دادن رفتار برنامه، نوشتار پاسخ را در فایل index.js به‌روز کنید. وقتی فایل را ذخیره می‌کنید، nodemon به‌طور خودکار برنامه را با کد منبع به‌روزشده مجدداً بار می‌کند و Visual Studio Code در حالت اشکال‌زدایی باقی می‌ماند.

    برنامه درحال اجرا است و به درخواست‌های HTTP در درگاه
`۹۰۰۰` با تغییر کد
بارشده گوش می‌دهد

    شکل ۸. برنامه درحال اجرا است و به درخواست‌های HTTP در درگاه 9000 با کد تغییر بارشده گوش می‌دهد.

  10. این بار، به‌جای ارسال پیام دوم Hello در فضا، می‌توانید آخرین درخواست HTTP ثبت‌شده در میانای وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان را انتخاب کنید و روی Replay کلیک کنید. مثل دفعه قبل، برنامه Chat شما پاسخ نمی‌دهد چون درحال اشکال‌زدایی فعال است.

  11. وقتی اجرا را از اشکال‌زدای Visual Studio Codeازسر می‌گیرید می‌توانید از رابط وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان ببینید که برنامه پاسخی با نسخه به‌روزشده پیام تولید می‌کند.

Python

  1. اطلاعات اعتباری کاربر جدید را برای استفاده در اطلاعات اعتباری پیش‌فرض برنامه دریافت کنید:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    PROJECT_ID را با شناسه پروژه برای پروژه Cloud برنامه جایگزین کنید.

  2. مخزن googleworkspace/add-ons-samples را از GitHub در محیط محلی خود شبیه‌سازی کنید، این مخزن حاوی کد برنامه است:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  3. از Visual Studio Code IDE نصب‌شده در محیط محلی‌تان، کارهای زیر را انجام دهید:

    1. در پنجره جدید، پوشه add-ons-samples/python/chat/avatar-app را باز کنید.
    2. محیط مجازی جدیدی برای Python env ایجاد کنید و آن را فعال کنید:

      virtualenv env
      source env/bin/activate
    3. همه وابستگی‌های پروژه را بااستفاده از pip در محیط مجازی نصب کنید:

      pip install -r requirements.txt
    4. فایل .vscode/launch.json را در فهرست راهنمای ریشه ایجاد کنید و راه‌اندازی‌ای به‌نام Debug Watch را پیکربندی کنید که برنامه را از واحد functions-framework در درگاه 9000 در حالت اشکال‌زدایی در محیط مجازی env راه‌اندازی کند:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch",
              "name": "Debug Watch",
              "python": "${workspaceFolder}/env/bin/python3",
              "module": "functions_framework",
              "args": [
                  "--target", "avatar_app",
                  "--port", "9000",
                  "--debug"
              ]
          }]
      }
      
    5. نقطه گسستی اضافه کنید که پردازش درخواست HTTP را در فایل main.py متوقف کند، و با پیکربندی Debug Watch که قبلاً اضافه شده است، اجرا و اشکال‌زدایی را شروع کنید. اکنون برنامه درحال اجرا است و در درگاه 9000 به درخواست‌های HTTP گوش می‌دهد.

      برنامه درحال اجرا است و در درگاه ۹۰۰۰ به درخواست‌های HTTP گوش می‌دهد

      شکل ۳. برنامه درحال اجرا است و در درگاه 9000 به درخواست‌های HTTP گوش می‌دهد.

  4. برنامه ngrok را در محیط محلی‌تان راه‌اندازی کنید:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    ‫NGROK_STATIC_DOMAIN را با دامنه ایستا در حساب ngrok خود جایگزین کنید. اکنون همه درخواست‌ها به محیط محلی شما و درگاه مورد استفاده برنامه هدایت می‌شوند.

    پایانه با سرور `ngrok` درحال اجرا و
هدایت کردن

    شکل ۴. پایانه با سرور ngrok درحال اجرا و هدایت مجدد.

  5. رابط وب نیز توسط برنامه ngrok در میزبان محلی شما شروع می‌شود، می‌توانید با باز کردن آن در مرورگر، همه فعالیت‌ها را پایش کنید.

    میانای وب میزبانی‌شده توسط برنامه `ngrok` که هیچ درخواست HTTP
را نشان نمی‌دهد

    شکل ۵. میانای وب میزبانی‌شده توسط برنامه ngrok که هیچ درخواست HTTP را نشان نمی‌دهد.

  6. برنامه Chat خود را با ارسال پیام مستقیم به آن آزمایش کنید:

    • ‫Google Chat را باز کنید.

      رفتن به Google Chat

    • روی گپ جدید کلیک کنید.

    • در چارگوش گفتگو، نام برنامه Chat خود را وارد کنید.

    • در نتایج جستجو، برنامه Chat را پیدا کنید، روی افزودن > Chat کلیک کنید.

    • در فضای پیام مستقیم، Hey! را تایپ کنید و enter را فشار دهید. برنامه Chat شما پاسخ نمی‌دهد زیرا درحال عیب‌یابی فعال است.

  7. در Visual Studio Code در محیط محلی‌تان، می‌توانید ببینید که اجرا در نقطه گسستی که تنظیم شده بود متوقف شده است.

    اجرا در نقطه گسستی که تنظیم شده بود موقتاً متوقف شد

    شکل ۶. اجرا در نقطه گسستی که تنظیم شده است موقتاً متوقف می‌شود.

  8. وقتی اجرا را از اشکال‌زدای Visual Studio Code قبل‌از اینکه زمان برنامه Chat در Google Chat تمام شود ازسر می‌گیرید، با نام و عکس چهرک شما در پیام پاسخ می‌دهد.

  9. می‌توانید گزارش‌های درخواست و پاسخ HTTP را از واسط وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان بررسی کنید.

    درخواست HTTP از رابط وب میزبانی‌شده توسط برنامه `ngrok`

    شکل ۷. درخواست HTTP از رابط وب میزبانی‌شده توسط برنامه ngrok.

  10. برای تغییر رفتار برنامه، Hello را با Hey در فایل main.py جایگزین کنید. وقتی فایل را ذخیره می‌کنید، Visual Studio Codeبه‌طور خودکار برنامه را با کد منبع به‌روزشده مجدداً بار می‌کند و در حالت اشکال‌زدایی باقی می‌ماند.

    برنامه درحال اجرا است و به درخواست‌های HTTP در درگاه
`۹۰۰۰` با تغییر کد
بارشده گوش می‌دهد

    شکل ۸. برنامه درحال اجرا است و به درخواست‌های HTTP در درگاه 9000 با کد تغییر بارشده گوش می‌دهد.

  11. این بار، به‌جای ارسال پیام دوم Hey! در فضا، می‌توانید آخرین درخواست HTTP ثبت‌شده در میانای وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان را انتخاب کنید و روی Replay کلیک کنید. مثل دفعه قبل، برنامه Chat شما پاسخ نمی‌دهد چون درحال اشکال‌زدایی فعال است.

  12. وقتی اجرا را از اشکال‌زدای Visual Studio Codeازسر می‌گیرید می‌توانید از رابط وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان ببینید که برنامه پاسخی با نسخه به‌روزشده پیام تولید می‌کند.

جاوا

  1. اطلاعات اعتباری کاربر جدید را برای استفاده در اطلاعات اعتباری پیش‌فرض برنامه دریافت کنید:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    PROJECT_ID را با شناسه پروژه برای پروژه Cloud برنامه جایگزین کنید.

  2. مخزن googleworkspace/add-ons-samples را از GitHub در محیط محلی خود شبیه‌سازی کنید، این مخزن حاوی کد برنامه است:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  3. از Visual Studio Code IDE نصب‌شده در محیط محلی‌تان، کارهای زیر را انجام دهید:

    1. در پنجره جدید، پوشه add-ons-samples/java/chat/avatar-app را باز کنید.
    2. پروژه Maven را پیکربندی کنید تا برنامه App را به‌صورت محلی در درگاه 9000 با افزودن افزایه ساخت «چارچوب توابع Google Cloud» function-maven-plugin در فایل pom.xml اجرا کند:

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>App</functionTarget>
              <port>9000</port>
          </configuration>
      </plugin>
      ...
      
    3. اکنون می‌توانید آن را به‌صورت محلی در حالت اشکال‌زدایی راه‌اندازی کنید:

      mvnDebug function:run
      Preparing to execute Maven in debug mode
      Listening for transport dt_socket at address: 8000
    4. فایل .vscode/launch.json را در فهرست راهنمای ریشه ایجاد کنید و راه‌اندازی‌ای به‌نام Remote Debug Watch را پیکربندی کنید که به برنامه‌ای که قبلاً با درگاه 8000 راه‌اندازی شده است پیوست شود:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "java",
              "request": "attach",
              "name": "Remote Debug Watch",
              "projectName": "http-function",
              "hostName": "localhost",
              "port": 8000
          }]
      }
      
    5. نقطه گسستی اضافه کنید که پردازش درخواست HTTP را در فایل App.java متوقف کند، و با پیکربندی Remote Debug Watch که قبلاً اضافه شده است، پیوست کردن و اشکال‌زدایی را شروع کنید. برنامه اکنون درحال اجرا است و در درگاه 9000 به درخواست‌های HTTP گوش می‌دهد.

      برنامه درحال اجرا است و در درگاه ۹۰۰۰ به درخواست‌های HTTP گوش می‌دهد

      شکل ۳. برنامه درحال اجرا است و به درخواست‌های HTTP در درگاه 9000 گوش می‌دهد.

  4. برنامه ngrok را در محیط محلی‌تان راه‌اندازی کنید:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    ‫NGROK_STATIC_DOMAIN را با دامنه ایستا در حساب ngrok خود جایگزین کنید. اکنون همه درخواست‌ها به محیط محلی شما و درگاه مورد استفاده برنامه هدایت می‌شوند.

    پایانه با سرور `ngrok` درحال اجرا و
هدایت کردن

    شکل ۴. پایانه با سرور ngrok درحال اجرا و هدایت مجدد.

  5. رابط وب نیز توسط برنامه ngrok در میزبان محلی شما شروع می‌شود، می‌توانید با باز کردن آن در مرورگر، همه فعالیت‌ها را پایش کنید.

    میانای وب میزبانی‌شده توسط برنامه `ngrok` که هیچ درخواست HTTP
را نشان نمی‌دهد

    شکل ۵. میانای وب میزبانی‌شده توسط برنامه ngrok که هیچ درخواست HTTP را نشان نمی‌دهد.

  6. برنامه Chat خود را با ارسال پیام مستقیم به آن آزمایش کنید:

    • ‫Google Chat را باز کنید.

      رفتن به Google Chat

    • روی گپ جدید کلیک کنید.

    • در چارگوش گفتگو، نام برنامه Chat خود را وارد کنید.

    • در نتایج جستجو، برنامه Chat را پیدا کنید، روی افزودن > Chat کلیک کنید.

    • در فضای پیام مستقیم، Hey! را تایپ کنید و enter را فشار دهید. برنامه Chat شما پاسخ نمی‌دهد زیرا درحال عیب‌یابی فعال است.

  7. در Visual Studio Code در محیط محلی‌تان، می‌توانید ببینید که اجرا در نقطه گسستی که تنظیم شده بود متوقف شده است.

    اجرا در نقطه گسستی که تنظیم شده بود موقتاً متوقف شد

    شکل ۶. اجرا در نقطه گسستی که تنظیم شده است موقتاً متوقف می‌شود.

  8. وقتی اجرا را از اشکال‌زدای Visual Studio Code قبل‌از اینکه زمان برنامه Chat در Google Chat تمام شود ازسر می‌گیرید، با نام و عکس چهرک شما در پیام پاسخ می‌دهد.

  9. می‌توانید گزارش‌های درخواست و پاسخ HTTP را از واسط وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان بررسی کنید.

    درخواست HTTP از رابط وب میزبانی‌شده توسط برنامه `ngrok`

    شکل ۷. درخواست HTTP از رابط وب میزبانی‌شده توسط برنامه ngrok.

  10. برای تغییر دادن رفتار برنامه، Hello را با Hey درخط 55 فایل App.java جایگزین کنید، فرایند mvnDebug را بازراه‌اندازی کنید، و Remote Debug Watch را مجدداً راه‌اندازی کنید تا اشکال‌زدایی مجدداً پیوست و بازراه‌اندازی شود.

  11. این بار، به‌جای ارسال پیام دوم Hey! در فضا، می‌توانید آخرین درخواست HTTP ثبت‌شده در میانای وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان را انتخاب کنید و روی Replay کلیک کنید. مثل دفعه قبل، برنامه Chat شما پاسخ نمی‌دهد چون درحال اشکال‌زدایی فعال است.

  12. وقتی اجرا را از اشکال‌زدای Visual Studio Codeازسر می‌گیرید می‌توانید از رابط وب میزبانی‌شده توسط برنامه ngrok در محیط محلی‌تان ببینید که برنامه پاسخی با نسخه به‌روزشده پیام تولید می‌کند.

اشکال‌زدایی از محیط از دور

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

اشکال‌زدایی از محیط
از دور

شکل ۹. اشکال‌زدایی از محیط از دور.

پیش‌نیازها

  • فضای پیام مستقیم با برنامه Chat. می‌توانید بخش آزمایش برنامه Chat از راهنمای شروع سریع را دنبال کنید و برنامه Chat خود را جستجو کنید تا یکی را شروع کنید.
  • برنامه شما که در محیط از دور با اشکال‌زدای فعال در درگاه معینی اجرا می‌شود، در دستورالعمل‌های این راهنما به‌عنوان REMOTE_DEBUG_PORT ارجاع داده می‌شود.
  • محیط محلی شما می‌تواند ssh به محیط از دور شما.
  • «محیط توسعه یکپارچه» (IDE) که در محیط محلی شما راه‌اندازی شده باشد و بتواند اشکال‌زدایی کند. در این راهنما، از Visual Studio Code IDE و ویژگی‌های عیب‌یابی پیش‌فرض آن برای اهداف توضیحی استفاده می‌کنیم.

محیط‌های محلی و راه دور خود را متصل کنید

در محیط محلی‌تان که می‌خواهید اتصال مشتری اشکال‌زدایی را از آنجا شروع کنید، تونل «پوسته امن» راه‌اندازی کنید:

ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS

جایگزین کردن موارد زیر:

  • ‫LOCAL_DEBUG_PORT: درگاه اشکال‌زدایی در محیط محلی شما.
  • ‫REMOTE_USERNAME: نام کاربری در محیط از دور.
  • ‫REMOTE_ADDRESS: نشانی محیط از دور شما.
  • REMOTE_DEBUG_PORT: درگاه اشکال‌زدایی در محیط از دور.

درگاه اشکال‌زدایی در محیط محلی شما اکنون به درگاه اشکال‌زدایی در محیط ازدور شما پیوند داده شده است.

شروع اشکال‌زدایی

از محیط توسعه نرم‌افزار یکپارچه (IDE) Visual Studio Code نصب‌شده در محیط محلی‌تان، کارهای زیر را انجام دهید:

  1. در پنجره‌ای جدید، کد منبع برنامه‌تان را باز کنید.
  2. فایل .vscode/launch.json را در دایرکتوری ریشه ایجاد کنید و راه‌اندازی‌ای با نام Debug Remote پیکربندی کنید که به درگاه اشکال‌زدایی در محیط محلی شما پیوست می‌شود:

    Node.js

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "node",
            "request": "attach",
            "name": "Debug Remote",
            "address": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    Python

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "python",
            "request": "attach",
            "name": "Debug Remote",
            "connect": {
                "host": "127.0.0.1",
                "port": LOCAL_DEBUG_PORT
            }
        }]
    }
    

    جاوا

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "java",
            "request": "attach",
            "name": "Debug Remote",
            "hostName": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    ‫LOCAL_DEBUG_PORT را با درگاه اشکال‌زدایی در محیط محلی‌تان جایگزین کنید.

  3. در کد منبع برنامه‌تان نقطه گسستی اضافه کنید که پردازش درخواست HTTP را متوقف کند، و با پیکربندی Debug Remote که قبلاً اضافه شده است، اجرا و اشکال‌زدایی را شروع کنید.

در فضای پیام مستقیم با برنامه Chat، هر چیزی را که می‌خواهید آزمایش کنید تایپ کنید و enter را فشار دهید. برنامه Chat شما پاسخ نمی‌دهد زیرا درحال عیب‌یابی فعال در Visual Studio Code IDE است.

  • با نحوه فعال کردن و پُرسمان گزارش‌های خطای آشنا شوید.
  • با نحوه رفع خطاهای برنامه Google Chat مثل «برنامه پاسخ نمی‌دهد»، «میانای برنامه‌سازی کاربردی Google Chat فقط برای کاربران Google Workspace دردسترس است»، یا «کاربران می‌توانند از فضاها کنار گذاشته شوند» آشنا شوید.
  • با نحوه رفع خطاهای کارت مانند پیام‌های کارت، کادرهای گفتگو، یا پیش‌نمایش‌های پیوند که به‌درستی ارائه یا کار نمی‌کنند، آشنا شوید.

برنامه‌های Chat که برافزا نیستند: اشکال‌زدایی برنامه‌های Google Chat

مستندات زیر برای برنامه‌های Chat که برافزاهای Google Workspace نیستند اعمال می‌شود. برای انتقال برنامه Chat که برافزا نیست، تبدیل برنامه Chat به برافزای Google Workspace را ببینید.

برای اشکال‌زدایی برنامه Chat که برافزا نیست از محیط محلی‌تان:

  • در برگه «پیکربندی» Chat API در بخش ویژگی‌های تعاملی > تنظیمات اتصال، نشانی وب نقطه پایانی HTTP را انتخاب کنید و فیلد نشانی وب نقطه پایانی HTTP را مستقیماً روی https://<var>NGROK_STATIC_DOMAIN</var> تنظیم کنید.
  • از کد نمونه برای برنامه‌های Chat که برافزا از googleworkspace/google-chat-samples مخزن GitHub نیستند (google-chat-samples/node/basic-app، google-chat-samples/python/avatar-app، یا google-chat-samples/java/avatar-app) استفاده کنید.