
Xodera Plugins · Bubble Native
Xodera Photo Editor Native
აირჩეული ფოტო გადაკეთეთ თანმიმდევრულ ავატარში, პროდუქტის სურათში ან ანგარიშის დანართში. მოამოჭირეთ, გადატრიალეთ და შეცვალეთ მისი ზომა, შემდეგ შეინახეთ ექსპორტირებული ასლი თქვენს აპლიკაციაში.
Public beta guides · Haptics instructions are in its Bubble listing
Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.
დოკუმენტაცია გადახედულია 6 ნოემბერი 2026
პრაქტიკული მაგალითები
ერთნაირი პროფილის ავატარები ატვირთვამდე
მომხმარებლებს უნდა აირჩიონ, რომელი ნაწილი მათი ფოტოსა არის კვადრატული პროფილის გამოსახულებაში, ნაცვლად შემთხვევითი კვეთის მიღების.
`source_url = selected profile image`; `crop_aspect = "1:1"`; `document_context = the account’s stable reference`.
დაელოდეთ `source_loaded`-ს; Begin crop → Apply crop, საჭიროების შემთხვევაში Rotate ან Undo-ით. მხოლოდ მომხმარებლის მიერ Save-ის აშკარად არჩევისას გაუშვით Export image.
მხოლოდ `export_completed`-ზე, გამოიყენეთ `output_uri`, `output_width`, `output_height` და `output_mime` თქვენი ფაილის ატვირთვის სამუშაო ნაკადის შეყვანის სახით. შემდეგ შეინახეთ მისი მუდმივი ბმული პროფილში.
თუ მომხმარებელმა გაუქმებს ან `editor_error` გაეშვება, დატოვეთ ძველი ავატარი. სესია გასუფთავეთ ანგარიშის შეცვლისას, რათა სხვა მომხმარებელმა მონახაზი ვერ ნახოს.
რედაქტირება ქმნის ადგილობრივ ასლს. თქვენი აპლიკაცია არჩევს, როგორ შეინახოს ან ატვირთოს იგი.
მზადება თანმიმდევრულ ბაზრის ან კატალოგის ფოტოების
სხვადასხვა ჩარჩოების და ზედმეტად დიდი სურათები კატალოგს არაერთგვაროვანს ხდის და ატვირთვის ზომას ზრდის.
`source_url = selected item photo`; `crop_aspect = the app’s chosen ratio`; `export_max_dimension`, `export_format` და `export_quality` მოდიან თქვენი ატვირთვის წესებიდან.
მოაჭერეთ შესაბამისი ტერიტორია, სურვილისამებრ Resize, შემდეგ Export image მომხმარებლის დადასტურების შემდეგ. შეინარჩუნეთ ორიგინალური ფაილი/მიმართვა ცალკე.
შეამოწმეთ `output_width`, `output_height`, `output_bytes` და `output_mime` თქვენი ატვირთვის სამუშაო ნაკადის შედეგის შენახვამდე. შენახეთ მიღებული სურათის მიმართვა ელემენტზე.
თუ ექსპორტი ვერ მოხერხდება ან შედეგი დარღვევს თქვენი ატვირთვის წესებს, აჩვენეთ `error_code` და დაუშვით მომხმარებელს მისი გადახედვა. არ გადაწეროთ წინა ელემენტის სურათი ატვირთვის დადასტურებამდე.
რედაქტირება ქმნის ადგილობრივ ასლს. თქვენი აპლიკაცია არჩევს, როგორ შეინახოს ან ატვირთოს იგი.
შექმენით ფოკუსირებული სურათის ასლი ადგილზე შესრულებული სამუშაოს ანგარიშისთვის.
ტექნიკოსს შეიძლება საჭირო იყოს დაზიანებული ნაწილის ახლოს გადაღებული ფოტო, ხოლო ორიგინალური ანგარიშის სურათი უნდა დარჩეს.
`source_url = Current Report Photo’s source`; `document_context = the report/account reference`; მოჭერის პროპორცია შეიძლება დარჩეს შეუზღუდავი.
Begin crop → Apply crop, შემდეგ გამოიყენეთ Undo/Redo რედაქტირებების შედარებისთვის. Export image ქმნის რედაქტირებულ ასლს; თქვენი აპლიკაცია ითხოვს, უნდა მიამაგროთ ეს ასლი ანგარიშში.
გამოიყენეთ `has_changes`, `can_undo`, `can_redo` და `output_uri`. ატვირთვის წარმატების შემდეგ, შეინახეთ ორიგინალი და რედაქტირებული მიმართვები ცალკე აპის ველებში.
Cancel crop ან Reset edits აღდგება რედაქტირების გზა; გაუქმება უნდა დატოვოს ორიგინალური Report დანართი შეუცვლელი.
რედაქტირება ქმნის ადგილობრივ ასლს. თქვენი აპლიკაცია არჩევს, როგორ შეინახოს ან ატვირთოს იგი.
რას მუშაობს ახლა
Public beta. Use the documented controls and actions; test supported formats, permissions and device behavior in your own native app. Browser preview does not validate native device output.
შექმენით სამუშაო ნაკადი
გამოიყენეთ ქვემოთ მოცემული ბეტა მოქმედებები და გამოცადეთ შედეგი თქვენი სამიზნე მოწყობილობებზე.
ამ მაგალითებში გამოიყენება აპის ჩანაწერები, როგორიცაა Lesson, Message და Order. შეცვალეთ ისინი თქვენი მონაცემის ტიპებით და ელემენტის სახელებით. მაგალითი მედია მისამართები უნდა შეცვალოთ თქვენი ფაილებისით.
დააყენეთ source_url არჩეულ გამოსახულებაზე. გამოიყენეთ document_context ანგარიშის და რედაქტირებული ჩანაწერის იდენტიფიკაციისთვის, რათა ჩანაწერის შეცვლამ წინა ფოტო გაასუფთაოს.
source_loaded-ის შემდეგ, გაუშვით Begin crop. აირჩიეთ 1:1 ავატარისთვის, დააკორექტირეთ კვეთა და გამოიყენეთ Apply crop. Cancel crop სურათს არ იცვლება.
გამოიყენეთ Rotate, Flip ან Resize, თუ საჭიროა. Undo და Redo გადადის დასრულებულ რედაქტირებებს; Reset edits აღადგენს ორიგინალურ სურათს.
გაუშვით Export image. export_completed-ზე, წაიკითხეთ output_uri, output_width, output_height და output_mime. შეინახეთ ან ატვირთეთ ეს ასლი თქვენი არჩეული ფაილის შენახვის სამუშაო ნაკადის საშუალებით, შემდეგ შეინახეთ შენახული ფაილი ჩანაწერში.
კონფიგურაცია ერთხელ
გასაღების აქტივაცია დაგეგმილია ამ პლაგინისთვის. შექმენით ან აირჩიეთ თქვენი Bubble აპლიკაციის პროექტი BestPlugins → Dashboard → Plugins-ში. აირჩიეთ Xodera Photo Editor Native, დაკოპირეთ მისი გასაღები, შემდეგ გახსენით Bubble → Plugins → Xodera Photo Editor Native და ჩასვით იგი licensing_api_key-ში. შეინახეთ ერთხელ; შემდეგ გამოიყენეთ ქვემოთ მოცემული მოქმედებები. თითოეულ პროექტში თითოეულ პლაგინს აქვს თავისი გასაღები.
ჯერ აირჩიეთ ან გადაღეთ სურათი თქვენს აპლიკაციით. გადაეცით რედაქტორს მიღებული წაკითხვადი სურათის მისამართი. კამერისა და ფოტოთეკის ნებართვები ეხება თქვენ მიერ გამოყენებულ ფაილის ან ფოტოს ამრჩევ ხელსაწყოს.
კონფიგურაცია ერთხელ
- შექმენით ან აირჩიეთ თქვენი Bubble აპის პროექტი BestPlugins → Dashboard → Plugins-ში.
- აირჩიეთ ეს პლაგინი და დაკოპირეთ მისი პროექტის გასაღები.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- დაამატეთ ელემენტი, აირჩიეთ თქვენი აპის მონაცემები და შექმენით ქვემოთ მოცემული სამუშაო ნაკადი.
- In the dashboard, review and confirm the 7-day card trial for this plugin. It then costs US$1.50/month per app project, including development and production. Cancel before the trial ends to avoid the first charge.
დაყენება და გამოწერა
For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.
შენახეთ შედეგი თქვენს აპლიკაციაში
შენახეთ ატვირთული ან მუდმივად შენახული გამოსახულება Profile.image-ში ან თქვენს მიმაგრების ველში. output_uri არის დროებითი ფაილი მოწყობილობაზე, ამიტომ პირველ რიგში შეინახეთ ეს ფაილი თქვენს არჩეულ სამუშაო პროცესში. შემდეგ შეინახეთ output_width, output_height და output_mime როგორც მეტამონაცემები. შეინარჩუნეთ ორიგინალი გამოსახულება, თუ გჭირდებათ ორივე ვერსია.
შეცდომა, გაუქმება და აღდგენა
source_load_failed-ზე ან editor_error-ზე, აჩვენეთ error_code და შემოთავაზეთ Load source. Cancel operation წყვეტს დაუსრულებელი შედეგის მიღებას; დაელოდეთ is_busy=no-მდე, სანამ დაიწყებთ სხვა რედაქტირებას. Clear session გასუფთავებს რედაქტორს, არა იმ გამოსახულებას, რომელიც უკვე შენახულია სხვა ადგილას.
შესაძლებლობები და შეზღუდვები
JPEG და PNG ექსპორტი; ხარისხი 0–1; გამოსასვლელი სურათის მაქსიმალური გვერდი 1–4096 პიქსელი. შეყვანა: მაქსიმუმ 15 MiB და 20 მეგაპიქსელი. მაქსიმუმ 20 დასრულებული რედაქტირება. მოჭრის ვარიანტები: თავისუფალი, 1:1, 4:3, 3:4 და 16:9. არ არის ჩაშენებული კამერა, ფილტრები, სურათზე ტექსტის დამატება, პერსპექტივის კორექცია, WebP ექსპორტი ან ავტომატური ატვირთვა.
პარამეტრები, მოქმედებები და შედეგები
გამოიყენეთ ეს სახელები Bubble-ში. დაგეგმილი ფუნქციები ცალკე მონიშნულია.
ხელმისაწვდომი ბეტა პარამეტრები
ელემენტის პარამეტრები
source_url · textdocument_context · textis_active · yes_nodisabled · yes_noshow_controls · yes_nocrop_aspect · textexport_format · textexport_quality · numberexport_max_dimension · numberallow_upscale · yes_noui_text_json · textlanguage · textმდგომარეობები
editor_status · textis_busy · yes_nohas_image · yes_nohas_changes · yes_nocan_undo · yes_nocan_redo · yes_noimage_width · numberimage_height · numberoutput_uri · textoutput_width · numberoutput_height · numberoutput_bytes · numberoutput_mime · texterror_code · textcrop_active · yes_nocrop_rect_json · textმოვლენები
source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_errorმოქმედებები და მათი შეყვანები
Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear sessionელემენტის პარამეტრები · 12
source_urltext · ნაგულისხმევი: ""- მაგალითი მნიშვნელობა
https://bestplugins.online/native-samples/avatar.jpg - მაგალითი Bubble გამოსახულება
Selected Profile's image_url - არჩეული აუდიო, ვიდეო ან სურათის ფაილის მისამართი. გამოიყენეთ ფაილის ტიპი, რომელსაც ეს პლაგინი უჭერს მხარს.
document_contexttext · ნაგულისხმევი: ""- მაგალითი მნიშვნელობა
<current-user-id> - მაგალითი Bubble გამოსახულება
Current User's unique id - სტაბილური მნიშვნელობა ამ ანგარიშის ან ჩანაწერისთვის. გამოიყენეთ იგივე მნიშვნელობა მისი შენახული ფაილების ან მონახაზების აღდგენისას.
is_activeyes_no · ნაგულისხმევი: true- მაგალითი მნიშვნელობა
yes - მაგალითი Bubble გამოსახულება
GuideHost's view_is_active (your yes/no custom state) - დააყენეთ yes, როდესაც ეს ხედია ღია. დააყენეთ no, როდესაც დატოვებთ, რათა დაკვრა ან მიმდინარე სამუშაო შეჩერდეს.
disabledyes_no · ნაგულისხმევი: false- მაგალითი მნიშვნელობა
no - მაგალითი Bubble გამოსახულება
GuideHost's is_busy (your yes/no custom state) - გამორთეთ ელემენტი, როდესაც თქვენი აპი დაკავებულია ან ეს ქმედება მიუწვდომელია.
show_controlsyes_no · ნაგულისხმევი: true- მაგალითი მნიშვნელობა
yes - მაგალითი Bubble გამოსახულება
App Settings' show_editor_controls - აჩვენეთ ან დამალეთ ჩაშენებული კონტროლები.
crop_aspecttext · ნაგულისხმევი: "free"- მაგალითი მნიშვნელობა
1:1 - მაგალითი Bubble გამოსახულება
Avatar Settings' crop_ratio - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
export_formattext · ნაგულისხმევი: "jpeg"- მაგალითი მნიშვნელობა
jpeg - მაგალითი Bubble გამოსახულება
Format Dropdown's value - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
export_qualitynumber · ნაგულისხმევი: 0.85- მაგალითი მნიშვნელობა
0.85 - მაგალითი Bubble გამოსახულება
Image Settings' quality - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
export_max_dimensionnumber · ნაგულისხმევი: 2048- მაგალითი მნიშვნელობა
2048 - მაგალითი Bubble გამოსახულება
Image Settings' max_side - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
allow_upscaleyes_no · ნაგულისხმევი: false- მაგალითი მნიშვნელობა
no - მაგალითი Bubble გამოსახულება
Allow upscale Checkbox is checked - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
ui_text_jsontext · ნაგულისხმევი: ""- მაგალითი მნიშვნელობა
{} - მაგალითი Bubble გამოსახულება
App Settings' player_labels_json (supported keys only) - არასავალდებულო JSON მხარდაჭერილი ღილაკების წარწერებით. ჩაშენებული ტექსტის გამოსაყენებლად დატოვეთ ცარიელი.
languagetext · ნაგულისხმევი: "auto"- მაგალითი მნიშვნელობა
uk - მაგალითი Bubble გამოსახულება
Current User's preferred_language - დააყენეთ language=auto, რათა მიყოლოთ მხარდაჭერილი მოწყობილობა ან ბრაუზერის ენა. შეიყვანეთ მხარდაჭერილი ენის კოდი, რათა მას მკაფიოდ აირჩიოთ.
მოქმედებები და მათი შეყვანები · 13
Load source
ქმედების პარამეტრები არ არის
Begin crop
ქმედების პარამეტრები არ არის
Apply crop
origin_xnumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
0 - მაგალითი Bubble გამოსახულება
Crop Settings' x (or omit all rectangle inputs) - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
origin_ynumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
0 - მაგალითი Bubble გამოსახულება
Crop Settings' y (or omit all rectangle inputs) - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
widthnumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
512 - მაგალითი Bubble გამოსახულება
Resize Width Input's value:converted to number - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
heightnumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
512 - მაგალითი Bubble გამოსახულება
Resize Height Input's value:converted to number - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
Cancel crop
ქმედების პარამეტრები არ არის
Rotate
degreesnumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
90 - მაგალითი Bubble გამოსახულება
Rotation Dropdown's value - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
Flip
axistext · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
horizontal - მაგალითი Bubble გამოსახულება
Flip Direction Dropdown's value - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
Resize
widthnumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
512 - მაგალითი Bubble გამოსახულება
Resize Width Input's value:converted to number - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
heightnumber · ნაგულისხმევი: —- მაგალითი მნიშვნელობა
512 - მაგალითი Bubble გამოსახულება
Resize Height Input's value:converted to number - გამოიყენეთ მიმდინარე ბიზნეს-ჩანაწერის მნიშვნელობა; გადამოწმეთ იგი ქვემოთ მოცემული ლიმიტებთან.
Undo
ქმედების პარამეტრები არ არის
Redo
ქმედების პარამეტრები არ არის
Reset edits
ქმედების პარამეტრები არ არის
Export image
ქმედების პარამეტრები არ არის
Cancel operation
ქმედების პარამეტრები არ არის
Clear session
ქმედების პარამეტრები არ არის
სტატუსები და მოვლენები
მდგომარეობები
editor_status · textამ ქმედების მიმდინარე შედეგი. გამოიყენეთ შესაბამისი დასრულების მოვლენა, სანამ შენახავთ წარმატებას.
is_busy · yes_noსამუშაო ჯერ კიდევ მიმდინარეობს. დაელოდეთ, სანამ სხვა მოქმედებას დაიწყებთ.
has_image · yes_noარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
has_changes · yes_noარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
can_undo · yes_noარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
can_redo · yes_noარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
image_width · numberარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
image_height · numberარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
output_uri · textფაილის მდებარეობა ამ მოწყობილობაზე. შეინახეთ ან ატვირთეთ ფაილი ცალკე, თუ საჭიროა ონლაინში შენარჩუნება.
output_width · numberარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
output_height · numberარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
output_bytes · numberარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
output_mime · textარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
error_code · textშეცდომის ინფორმაცია ბოლო ქმედებისთვის. აჩვენეთ სასარგებლო შეტყობინება და შემოთავაზეთ შესაბამისი ცდა.
crop_active · yes_noარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
crop_rect_json · textარჩეული ელემენტის მიმდინარე მნიშვნელობა. წაიკითხეთ იგი დაკავშირებული მოვლენის შემდეგ.
მოვლენები
source_loadedროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
source_load_failedროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
edit_appliedროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
edit_undoneროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
edit_redoneროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
editor_resetროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
export_startedროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
export_completedროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
operation_cancelledროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
editor_errorროდესაც ეს მოვლენა მოხდება, წაიკითხეთ დაკავშირებული მდგომარეობები იგივე ელემენტიდან.
დეველოპერების კითხვები
output_uri არის Bubble File?
არა. ეს არის ადგილობრივი ქეშის ბილიკი. შენარჩუნეთ იგი დამოწმებული ადგილობრივი შენახვის ან ატვირთვის საშუალებით, სანამ ღრუბლოვანი ფაილის ბმული შეინახავთ.
როგორ მუშაობს გამოწერა?
For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.
დაკავშირებული გზამკვლევები
დახმარებისთვის, გვაცნობეთ, რომელი პლაგინი და მოწყობილობა იყენებთ, რა მოქმედება სცადეთ და რა მოხდა. გამოიყენეთ მაგალითი პირად მონაცემებს გარეშე. არასოდეს გაუზიაროთ თქვენი გასაღები ან კერძო ფაილები.