Sunday 28 October 2018

Integrasi Laravel dengan Google Calender API (PART 1)

Assalaamu Álaykum...

Intro

Berbeda jika menggunakan Package https://github.com/spatie/laravel-google-calendar, yang hanya sinkron dengan satu akun google calender. Dalam kasus kali ini kita ingin menghubungkan Google Calender dengan event yang dimiliki User. Jadi seorang user dengan user lain akan memiliki event google calender yang berneda. 

Overview

https://developers.google.com/identity/protocols/OAuth2
Untuk bisa terhubung dengan Google Calender kita memerlukan hak akses / token respon dari Google API. Token inilah yang nantinya akan memberikan hak akses ke Google Calender.


a. Membuat Project Google API
Kita menuju https://console.developers.google.com untuk membuat project baru, jika sudah memiliki project skip step ini.

b. Enable Service Library Google Calender
Setelah project terbuat kita harus enable Google Calender API pada list Library
pilih Google Calender API

Enable Library

c. Membuat Cridential
Langkah selanjutnya kita membuat Cridential, Kita akan menggunakan Oauth client.

Pilih Oauth client ID

kemudian kita akan masuk page selanjutnya, set Redirect Url. Untuk Host bisa di sesuaikan dengan host di local kalian. Disini kita akan route ke "/oauth2callback"

setting redirect
klik Create

d. Download JSON file
Langkah selanjutnya kita download Json file. Json ini berisikan informasi Client Id google console yang baru kita buat.

Download Json File
Sampai langkah ini kita selesai membuat cridential google console yang nantinya akan kita gunakan untuk mendapatkan token dari google API dan kemudian integrasi dengan Google Calender.

Install Google API

Sampai sini asumsi saya kita sudah memiliki project laravel yang suah berjalan. Kita membutuhkan Google API Client library, kita install lewat composer.


composer require google/apiclient

Library ini akan membantu kita dalam menghubungkan laravel dengan Google API. Untuk lebih jelas kalian bisa baca doc nya : https://github.com/googleapis/google-api-php-client


Continue di PART 2 ya.... :)

Saturday 6 October 2018

Composer install error di Ubuntu server 16.04

Beberapa saat yang lalu menemukan error ketika pertamakali install Laravel di Ubuntu server 16.04 dengan php 7.1. Setelah clone dari repo Gitlab, kemudian insatall composer berhasil. ketika
 composer install
muncul error


Problem 1
   - Installation request for doctrine/inflector v1.3.0 -> satisfiable by doctrine/inflector[v1.3.0].
   - doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 2
   - Installation request for symfony/css-selector v4.1.6 -> satisfiable by symfony/css-selector[v4.1.6].
   - symfony/css-selector v4.1.6 requires php ^7.1.3 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 3
   - Installation request for symfony/event-dispatcher v4.1.6 -> satisfiable by symfony/event-dispatcher[v4.1.6].
   - symfony/event-dispatcher v4.1.6 requires php ^7.1.3 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 4
   - Installation request for symfony/translation v4.1.6 -> satisfiable by symfony/translation[v4.1.6].
   - symfony/translation v4.1.6 requires php ^7.1.3 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 5
   - Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0].
   - doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 6
   - Installation request for myclabs/deep-copy 1.8.1 -> satisfiable by myclabs/deep-copy[1.8.1].
   - myclabs/deep-copy 1.8.1 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 7
   - Installation request for phar-io/manifest 1.0.1 -> satisfiable by phar-io/manifest[1.0.1].
   - phar-io/manifest 1.0.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 8
   - Installation request for phpunit/php-code-coverage 5.3.2 -> satisfiable by phpunit/php-code-coverage[5.3.2].
   - phpunit/php-code-coverage 5.3.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 9
   - Installation request for phpunit/phpunit 6.5.13 -> satisfiable by phpunit/phpunit[6.5.13].
   - phpunit/phpunit 6.5.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 10
   - Installation request for theseer/tokenizer 1.1.0 -> satisfiable by theseer/tokenizer[1.1.0].
   - theseer/tokenizer 1.1.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 11
   - doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
   - laravel/framework v5.5.44 requires doctrine/inflector ~1.1 -> satisfiable by doctrine/inflector[v1.3.0].
   - Installation request for laravel/framework v5.5.44 -> satisfiable by laravel/framework[v5.5.44].







   ----------
   Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/phpunit 6.5.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.6 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.5 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.12 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.11 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.10 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.3.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.3.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.6 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.5 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.12 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.11 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.10 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - Installation request for phpunit/phpunit ~6.0 -> satisfiable by phpunit/phpunit[6.0.0, 6.0.1, 6.0.10, 6.0.11, 6.0.12, 6.0.13, 6.0.2, 6.0.3, 6.0.4, 6.0.5, 6.0.6, 6.0.7, 6.0.8, 6.0.9, 6.1.0, 6.1.1, 6.1.2, 6.1.3, 6.1.4, 6.2.0, 6.2.1, 6.2.2, 6.2.3, 6.2.4, 6.3.0, 6.3.1, 6.4.0, 6.4.1, 6.4.2, 6.4.3, 6.4.4, 6.5.0, 6.5.1, 6.5.10, 6.5.11, 6.5.12, 6.5.13, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 6.5.6, 6.5.7, 6.5.8, 6.5.9].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-mbstring.ini
    - /etc/php/7.0/cli/conf.d/20-mcrypt.ini
    - /etc/php/7.0/cli/conf.d/20-mysqli.ini
    - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Setelah googling menemukan reverensi

https://stackoverflow.com/questions/43408604/php7-install-ext-dom-issue

dan saya ketik command

sudo apt-get update
sudo apt install php-xml

dan walaa.....

Error hilang...
 
Powered by Blogger.