Coder Social home page Coder Social logo

adminsharmasecureservicescausa / laravel-notion-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 5am-code/laravel-notion-api

0.0 0.0 0.0 348 KB

Effortless Notion integrations with Laravel

Home Page: https://5amco.de/docs

License: MIT License

PHP 100.00%

laravel-notion-api's Introduction

Laravel Notion API

Effortless Notion integrations with Laravel

Latest Version on Packagist Total Downloads

This package provides a simple and crisp way to access the Notion API endpoints, query data and update existing entries.

Installation

You can install the package via composer:

composer require fiveam-code/laravel-notion-api

Authorization

The Notion API requires an access token and a Notion integration, the Notion documentation explains how this works. It's important to grant access to the integration within your Notion account to enable the API access.

Add your Notion API token to your .env file:

NOTION_API_TOKEN="$YOUR_ACCESS_TOKEN"

Usage

Head over to the Documentation of this package.

🔥 Code Examples to jumpstart your Notion API Project

Basic Setup (+ example)

use FiveamCode\LaravelNotionApi\Notion; 

# Access through Facade (token has to be set in .env)
\Notion::databases()->find($databaseId);

# Custom instantiation (necessary if you want to access more than one NotionApi integration)
$notion = new Notion($apiToken, $apiVersion); // version-default is 'v1'
$notion->databases()->find($databaseId);

Fetch Page Information

// Returns a specific page
\Notion::pages()->find($yourPageId);

Search

// Returns a collection pages and databases of your workspace (included in your integration-token)
\Notion::search($searchText)
        ->query()
        ->asCollection();

Query Database

// Queries a specific database and returns a collection of pages (= database entries)
$sortings = new Collection();
$filters = new Collection();

$sortings
  ->add(Sorting::propertySort('Ordered', 'ascending'));
$sortings
  ->add(Sorting::timestampSort('created_time', 'ascending'));

$filters
  ->add(Filter::textFilter('title', ['contains' => 'new']));
// or
$filters
  ->add(Filter::rawFilter('Tags', ['multi_select' => ['contains' => 'great']]));
  
\Notion::database($yourDatabaseId)
      ->filterBy($filters) // filters are optional
      ->sortBy($sortings) // sorts are optional
      ->limit(5) // limit is optional
      ->query()
      ->asCollection();

Testing

vendor/bin/phpunit tests

Support

If you use this package in one of your projects or just want to support our development, consider becoming a Patreon!

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Used By

  • Julien Nahum created notionforms.io with laravel-notion-api, which allows you to easily create custom forms, based on your selected database within notion.
  • GitHub Notion Sync, a service by Beyond Code to sync the issues of multiple GitHub repositories into a Notion database
  • Notion Invoice, the first premium invoicing solution for freelancers and businesses that use Notion. Create beautiful PDF invoices from your Notion data.

Using this package in your project? Open a PR to add it in this section!

Credits

License

The MIT License (MIT). Please see License File for more information.

laravel-notion-api's People

Contributors

blessingefkt avatar farez avatar johguentner avatar mechelon avatar mpociot avatar osbre avatar sschlein avatar treonde avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.