ngx-facebook-fb
v2.0.0
Published
Facebook TypeScript SDK for Angular 9+
Downloads
79
Readme
ngx-facebook-fb
ngx-facebook-fb
is the same as ngx-facebook
but updated for use in Angular 9 projects. Details about this lib are here.
This is a wrapper for the official Facebook JavaScript SDK. It makes it easier to use Facebook SDK with Angular 9+ by providing components, providers and types.
Installation
1. Install via NPM
npm i ngx-facebook-fb
2. Add the Facebook JavaScript SDK to your index.html
<script type="text/javascript" src="https://connect.facebook.net/en_US/sdk.js"></script>
or in your main component (e.g. AppComponent
):
import { Component, OnInit, Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
class AppComponent implements OnInit {
constructor(
@Inject(PLATFORM_ID) private platformId: Object) { }
ngOnInit() {
if (isPlatformBrowser(this.platformId)) {
const tag = document.createElement('script');
tag.src = "https://connect.facebook.net/en_US/sdk.js";
document.body.appendChild(tag);
}
}
}
Note: The code in file
https://connect.facebook.net/en_US/sdk.js
useswindow
object that is unavailable in theNode.js
. So if we try to run this code on the server, we can have the errors. SSR won't work. Therefore exclude the usage of the lib on the server usingisPlatformBrowser(this.platformId)
3. Import FacebookModule
into your app's root module
import { FacebookModule } from 'ngx-facebook-fb';
@NgModule({
...
imports: [
FacebookModule.forRoot()
],
...
})
export class AppModule { }
If you only want to use FacebookService
only, without using the other components, then you can import it in your app's module instead of FacebookModule
.
4. Inject FacebookService
and call the init
method (optional)
This method must be called before using login
or api
methods. It is not required for other methods/components.
import { Component, OnInit, Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { FacebookService, InitParams } from 'ngx-facebook-fb';
export class MyComponentOrService {
constructor(private fb: FacebookService,
@Inject(PLATFORM_ID) private platformId: Object
) {
if (isPlatformBrowser(platformId)) {
let initParams: InitParams = {
appId: '1234566778',
xfbml: true,
version: 'v2.8'
};
fb.init(initParams);
}
}
}
Documentation
You can view complete and detailed documentation by visiting https://zyra.github.io/ngx-facebook/.
Example Usage
You can view our example project here and/or view its source code here
Example of login with Facebook
import { FacebookService, LoginResponse } from 'ngx-facebook-fb';
@Component(...)
export class MyComponent {
constructor(private fb: FacebookService) { }
loginWithFacebook(): void {
this.fb.login()
.then((response: LoginResponse) => console.log(response))
.catch((error: any) => console.error(error));
}
}
Example of sharing on Facebook
import { FacebookService, UIParams, UIResponse } from 'ngx-facebook-fb';
...
share(url: string) {
let params: UIParams = {
href: 'https://github.com/zyra/ngx-facebook-fb',
method: 'share'
};
this.fb.ui(params)
.then((res: UIResponse) => console.log(res))
.catch((e: any) => console.error(e));
}
Example of adding a Facebook like button
<fb-like href="https://github.com/zyra/ngx-facebook"></fb-like>
Example of playing a Facebook video
Basic video component usage
<fb-video href="https://www.facebook.com/facebook/videos/10153231379946729/"></fb-video>
Advanced video component usage
<fb-video href="https://www.facebook.com/facebook/videos/10153231379946729/" (paused)="onVideoPaused($event)"></fb-video>
import { Component, ViewChild } from '@angular/core';
import { FBVideoComponent } from 'ngx-facebook-fb';
@Component(...)
export class MyComponent {
@ViewChild(FBVideoComponent) video: FBVideoComponent;
ngAfterViewInit() {
this.video.play();
this.video.pause();
this.video.getVolume();
}
onVideoPaused(ev: any) {
console.log('User paused the video');
}
}