Yii2 Autopost kengaytmasi foydalanish yo'riqnomasi

Yii2 Autopost kengaytmasi (yii2-extension) Yii2 freymvorkida tayyorlangan loyiha uchun kengaytma bo'lib, Telegram, Facebook, Twitter kabi ijtimoiy tarmoqlarga saytdan turib matnli hamda rasmli xabarlarni yuborish, yuborilgan xabarlar tarixini ko'rish va xabarlarni o'chirish imkoniyatini taqdim qiladi.

Imkoniyatlari

  • Sayt orqali Telegram, Facebook hamda Twitter dagi sahifa va kanalga xabarlar chop etish
  • Yuborilgan xabarlar arxivini ko'rish, sayt orqali ularni o'chirish
  • Sahifa orqali sozlamalarni kiritish
  • Yii2 freymvorkida yaratilgan loyihani o'zgartirmagan xolda kengaytmani o'rnatish
  • Bu kengaytmaning o'z url manzili, sozlamalari va sahifalari mavjud

Kengaytmani mavjud loyihaga o'rnatish

  1. Kengaytmani o'rnatish uchun loyihaning composer.json fayli 'require' bo'limiga "bzimor/yii2-autopost": "dev-master" qatorini qo'shing yoki quyidagi buyruqni ishga tushiring:

    composer require bzimor/yii2-autopost:dev-master
    
  2. MySQL ma'lumotlar bazasiga kengaytmaning sozlamalarini va xabarlar tarixini saqlash uchun bazalarni o'rnating:

    • Migratsiya orqali:

      yii migrate --migrationPath=@bzimor/autopost/migrations --interactive=0
      

    Note

    Agar migratsiya davomida xatolik bo'lsa: Agar MySQL baza hosti localhost ga sozlangan bo'lsa, 127.0.0.1 ga o'zgartirib, qayta urinib ko'ring.

    • PhpMyAdmin da autopost.sql faylini PhpMyAdmin da import qilish orqali.

Kengaytma hech qanday xatolarsiz, muvaffaqiyatli o'rnatilgan bo'lsa, http://<<Saytingiz-nomi>>/autopost manzili orqali kengaytma bosh sahifasiga kirishingiz mumkin.

Kengaytmani sozlash

Xabarlarni ijtimoiy tarmoqdagi kanal va sahifalarga yuborish uchun avval sozlash menyusi orqali kirib, so'ralayotgan API ma'lumotlarni to'ldirishingiz kerak.

Buning uchun http://<<Saytingiz-nomi>>/autopost/setting manzili orqali har bir tarmoq bo'limidan O'zgartirish tugmasini bosib, o'sha tarmoq sozlamalirini kiritish sahifasiga kiriladi.

_images/autopost-1.png _images/autopost-2.png

Telegram sozlamalari

Telegram tarmog'ida kanalingizga kengaytma orqali xabar yuborilishini ta'minlash uchun, avvalo telegramda bot yaratib, yaratilgan botni kanalingizga admin sifatida qo'shishingiz lozim

Telegramda bot yangi bot yaratish

Telegram da bot yaratish uchun quyidagilarni bajaring:

  1. Telegram qidiruv joyiga @botfather deb yozib(1), izlash tugmasini bosing va birinchi chiqqan natijaga kirib start tugmasini bosing(2):
_images/tg-1.png
  1. Buyruqlar ichidan /newbot buyrug'ini tanlang yoki o'zingiz /newbot deb buyruq yuboring:
_images/tg-2.png
  1. So'ngra, so'rovga asosan yaratilayotgan yangi bot ismini (1), botning foydalanuv nomi ni (2) kiriting, shundan so'ng sizga Bot token (3) taqdim qilinadi. Botning foydalanuv nomi takrorlanmagan hamda oxiri "bot" yoki "_bot" so'zi bilan tugashi kerak:
_images/tg-3.png

Kanal id sini aniqlash

  1. Kanal id si o'rniga @<<kanal_nomi>> ni ham ishlatish mumkin. Kanal nomi bu yerda kanal linkining oxirgi qismi: https:// t.me/ <<kanal_nomi>>
_images/tg-4.png

Agar kanal ochiq bo'lmasa (private), u holda @getidsbot botini izlab toping, botga kirib /start ni bosing va kanalingizdagi biror xabarni "forward" qilib botga yuborsangiz, sizning kanalingiz id sini chiqarib beradi.

_images/tg-5.png
  1. Yaratilgan botni kanalingizga admin sifatida qo'shing hamda olingan ma'lumotlarni kengaytma sozlamalariga kiriting.

Facebook sozlamalari

Facebook ijtimoiy tarmog'idagi sahifangizga kengaytma orqali xabar yuborilishini ta'minlash uchun siz o'sha sahifa admini bo'lishingiz va quyidagilarni bajarishingiz kerak.

Facebook da dastur yaratuvchi akkauntini faollashtirish

Facebook sahifasiga xabar chop etishda foydalaniladigan dastur yaratish uchun dastur yaratuvchi akkauntini faollashtirishingiz kerak bo'ladi. Buning uchun https://developers.facebook.com/docs/pages/getting-started#developer-account manziliga kiring va Создать аккаунт разработчика tugmasini bosing:

_images/fb-1.png

Facebook da dastur yaratish va dastur ma'lumotlarini olish

  1. Dastur yaratuvchi akkaunti yaratilgandan so'ng sizga dastur yaratish oynasi ochiladi, oynadan Создать ID приложения tugmasini bosing:
_images/fb-2.png
  1. Dastur nomini va pochta manzilingizni kiriting:
_images/fb-3.png
  1. Dastur yaratilgandan so'ng, chap tarafdan Панель bo'limiga kirib, api versiyasi (1), App ID (2) va Api secret (3) larni ko'chirib oling:
_images/fb-4.png _images/fb-5.png

Facebook dasturi uchun Access token olish

  1. Shundan so'ng https://developers.facebook.com/tools/explorer manziliga kirib, qizil bilan belgilangan joyni bosib, ro'yxatdan dasturingizni tanlang:
_images/fb-6.png
  1. Rasmda ko'rsatilgan Получить маркер tugmasini bosib, eng quyidan Получит маркер доступа пользователя ni tanlang va ochilgan oynadan qizil bilan belgilanganlarini tanlab, Получить маркер доступа ni bosing:
_images/fb-6a.png _images/fb-7.png
  1. Kichik bir oyna ochilgandan so'ng, davom etish, so'ngra ok tugmasini bosing:
_images/fb-8.png
  1. Belgilangan joydan tokenni ko'chirib oling:
_images/fb-9.png
  1. Ko'chirib olingan token qisqa muddatli token hisoblanadi. Uni uzoq muddatli tokenga almashtirish uchun dastur Api secret ini hamda dastur ID sini quyidagi linkga qo'yib, o'sha linkni brauzerda oching:

    https://graph.facebook.com/oauth/access_token?client_id=<<Dasturingiz ID si>>&client_secret=<<Dasturingiz API Secreti>>&grant_type=fb_exchange_token&fb_exchange_token=<<Dasturingiz Access tokeni>>
    
_images/fb-10.png
  1. Natijada siz uzoq muddatli token ga ega bo'lasiz. Bu tokenni hech qachon eskirmaydigan token ga almashtirish uchun quyidagi linkga uzoq muddatli token ni qo'yib brauzeringizda oching:

    https://graph.facebook.com/me/accounts?access_token=<<uzoq muddatli token ingiz>>
    
  2. Va nihoyat siz hech qachon eskirmaydigan token ga ega bo'ldingiz. Bu yerdan Sahifa ID sini ham olish mumkin:

_images/fb-11.png
  1. Agar yuqoridagi holatda sahifa ID siga ega bo'lmasangiz, Facebookdagi sahifangiz manziliga kirib, Информация bo'limidan olish mumkin:
_images/fb-12.png
  1. Olingan ma'lumotlarni kengaytmadagi Facebook sozlamalariga yozib, saqlab qo'ying.

Twitter sozlamalari

Twitter ijtimoiy tarmog'idagi sahifangizga kengaytma orqali xabar yuborilishini ta'minlash uchun quyidagilarni bajaring.

Twitter da dastur yaratish

  1. Twitter da dastur yaratish uchun https://apps.twitter.com/ manziliga kiring va Create New App tugmasini bosing:
_images/tw-1.png
  1. So'ngra dastur nomi(1), dastur haqida ma'lumot(2), vebsayt(3) qatorlarini to'ldiring, shartlarga rozilik belgisini qo'yib, Create your Twitter application tugmasini bosing:
_images/tw-2.png _images/tw-3.png

Dastur ma'lumotlarini olish

  1. Ochilgan oynadan Keys and Access Tokens bo'limiga o'ting. Bu yerdan siz Api key (1) hamda Api secret (2) larni olishingiz mumkin:
_images/tw-4.png
  1. Shu sahifaning pastiga tushib, Create my access token tugmasini bosing, shunda sizga Access token (3) va Token secret (4) taqdim qilinadi:
_images/tw-5.png _images/tw-6.png
  1. Olingan ma'lumotlarni kengaytma sozlamalaridagi kerakli qatorlarga qo'ying.

Kengaytmadan foydalanish

Kod ichida modul sifatida foydalanish

Yii2-autopost kengaytmasi o'rnatilib, ijtimoiy tarmoq sozlamalari kiritilgach, kengaytmani o'z kodingiz ichida quyidagicha ishlatiladi:

  • Xabarlarni yuborish:

    use Yii;
    ...
    
    ...
    $content = array();
    $apimanager = Yii::$app->getModule('autopost')->apimanager;
    
    $content['title'] = 'Xabar sarlavhasi'; //Ixtiyoriy
    $content['message'] = 'Xabar matni'; //Ixtiyoriy
    $content['link'] = 'Xabar linki'; //Ixtiyoriy
    
    //Agar matn rasm sifatida yuboriladigan bo'lsa:
    $content['photo_url'] = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png' //Rasmning to'liq url manzili
    
    /*
    * $share qiymati quyidagicha belgilanadi:
    * Telegram - 1, Facebook - 2, Twitter -4.
    * Agar xabar faqat Telegram ga yuborilsa $share = 1 bo'ladi, faqat Telegram va Twitter bo'lsa 1+4 = 5, $share = 5 bo'ladi, vhkz.
    * Agar $share ga qiymat berilmasa, o'z holicha 7 bo'lib, barcha tarmoqlarga yuboriladi.
    */
    $share = 1; //1-7 gacha raqamlardan biri
    
    /*
    * $type 'text' yoki 'photo' qiymatini qabul qiladi. Ya'ni matnli va rasmli xabarlar uchun
    * Agar $type o'zgaruvchisi berilmasa, har bir tarmoq uchun sozlamadagi xabar turi tanlanadi.
    */
    echo $apimanager->share($content, $share, $type); //natijani sahifada chop etish
    
  • Yuborilgan xabarlar tarixini ko'rish va ularni o'chirish http://<<Saytingiz-nomi>>/autopost sahifasi orqali amalga oshiriladi.

Kengaytmada xatoliklarni tekshirish

API xatoliklarni qayd qilish

Yii2-autopost kengaytmasi xabarlarni yuborish jarayonida API larda xatolik bo'lsa /src/logs papkasida o'sha kungi kun bilan fayl yaratadi.

Agar kengaytmada oldini olib bo'lmas xatolik yoki kamchiliklar kuzatilsa yoki qo'shimcha imkoniyatlar qo'shish taklifi bo'lsa, kengaytmaning Githubdagi sahifasi https://github.com/bzimor/yii2-autopost ga kirib, o'z xissangizni qo'shishingiz mumkin. Bundan albatta xursand bo'laman.