Skip to content

An opinionated yet customizable Flutter package for searching and selecting from a list of GIFs/Stickers from the Tenor GIF search API.

License

Notifications You must be signed in to change notification settings

Flyclops/tenor_flutter

Repository files navigation

Tenor Flutter

Tenor Flutter Pub Package Build Status Coverage Status Tenor Dart Stars License BSD 3-Clause

This package integrates Tenor GIF search into Flutter by utilizing the tenor_dart package to communicate directly with the Tenor API V2 via http.

The package currently provides an opinionated yet customizable UI experience for searching and selecting from a list of GIFs/Stickers from the Tenor GIF search API.

Tenor Flutter Demo

Show some ❤️ and star the repo to support this package.

What to know

  • In order to start using Tenor Flutter you must obtain an API key by registering your project with Tenor.
  • Tenor requires proper attribution for projects using their API. This package enables "Powered By Tenor" and "Search Tenor" by default. You are only required to have one.

Obtaining Tenor API v2 key

  1. Log in to the Google Cloud Console
  2. Create a new project
  3. Go to the Google Cloud Marketplace and find the Tenor API
  4. Click Enable to activate it
  5. In the navigation menu, go to the APIs & Services tab and select Credentials
  6. Click + Create Credentials and choose API key
  7. Copy the generated API key
  8. Provide this API key as a parameter to Tenor(apiKey: 'YOUR_API_KEY')

Usage

Installation

flutter pub add tenor_flutter

Having trouble? Read the pub.dev installation page.

Import

Import the package into the dart file where it will be used:

import 'package:tenor_flutter/tenor_flutter.dart';

Initialize

You must pass in a valid apiKey provided by Tenor. It's strongly recommended to also pass in a clientKey as this will help you distinguish which project is making the requests.

final tenorClient = Tenor(apiKey: 'YOUR_API_KEY', clientKey: 'YOUR_PROJECT_NAME');

Example

For more elaborate examples feel free to check out example/lib/main.dart.

Here's how to display the UI as a bottom sheet and then print the user's selection. If null is returned, it means the user closed the sheet without choosing a GIF.

final tenorClient = Tenor(apiKey: 'YOUR_API_KEY', clientKey: 'YOUR_PROJECT_NAME');
final TenorResult? result = await tenorClient.showAsBottomSheet(context: context);
print(result?.media.tinyGif?.url);

Don't need the UI?

If you're seeking a solution that allows for full customization without the need of dependencies then consider Tenor Dart.

Sponsors

Flyclops

Domino!

Flyclops is a independent mobile games studio specializing in casual multi-player games, both asynchronous turn-based, and real-time. Flyclops’s games have been played by millions across the globe.

Domino! is super addictive, fast-paced, multiplayer dominoes done right for iOS and Android. This easy-to-learn but impossible-to-master strategy game is beautifully designed and endlessly entertaining!

What's next?

  • Documentation
  • Tests (Contributions welcome) ^_^
  • Further improvements

Contributing

If you read this far then you are awesome! There are a multiple ways in which you can contribute:

  • Pick up any issue marked with "good first issue"
  • Propose any feature, enhancement
  • Report a bug
  • Fix a bug
  • Write and improve some documentation
  • Send in a Pull Request 🙏