cgmalaquias/basecamp3-laravel

Integracao da API do Basecamp 3 com o Laravel 5

dev-master 2016-10-14 17:36 UTC

This package is not auto-updated.

Last update: 2024-03-16 16:09:16 UTC


README

Esta Integração da API do Basecamp 3 com o Laravel 5 proporcionará a integração da nova API do Basecamp 3, atraves da 37 Signals com a aplicação em Laravel 5.

Instalação

Nós recomendamos utilizar o composer: (após a instalação do Laravel 5):

$ php composer.phar require cgmalaquias/basecamp3-laravel

Utilização

Para utilizar a biblioteca, será necessário ter uma conta criada no https://integrate.37signals.com/ Utilize a biblioteca do Laravel Socialite

Após a autenticação pelo Socialite, utilize a configuação abaixo em um controller chamado BasecampController.php, com

Utiize a autenticação via OAuth token

Abaixo um exemplo de como ficará seu controller com o handle e o callback:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Socialite;
use Basecamp;

class BasecampController extends Controller {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function handle(Request $request) {
        return Socialite::driver('Thitysevensignals')->redirect();
    }

    public function callback(Request $request) {
        $user = Socialite::driver('Thitysevensignals')->stateless()->user();
        $client = Basecamp\BasecampClient::factory(array(
                    'base_url' => $user->user['accounts'][1]['href'],
                    'auth' => 'oauth',
                    'username' => $user->user['identity']['email_address'],
                    'user_id' => $user->user['identity']['id'], //$user->user['accounts'][1]['id'],
                    'app_name' => $user->user['accounts'][1]['name'],
                    'app_contact' => $user->user['identity']['email_address'],
                    'token' => $user->token
        ));
        //dd($user);
        dd($client);
    }

No controller, você pdoerá criar os métodos, para aceitar todas as reuisições compostas nesta biblioteca, podendo fazer seus testes utitários:

  • updateTodo
  • grantAccess
  • updateCalendar
  • deleteCalendar
  • updateCalendarEvent
  • deleteCalendarEvent
  • updateProjectCalendarEvent
  • deleteProjectCalendarEvent