@greg-md/ng-facebook
Version:
Using Facebook SDK with Angular.
62 lines (61 loc) • 2.11 kB
TypeScript
import { NgZone } from '@angular/core';
import { Observable, ReplaySubject } from 'rxjs';
export interface FacebookInitParams {
appId?: string;
status?: boolean;
xfbml?: boolean;
version?: string;
}
export interface FacebookAuth {
accessToken: string;
expiresIn: number;
signedRequest: string;
userID: string;
}
export interface FacebookLoginResponse {
status: string;
authResponse: FacebookAuth;
}
export interface FacebookLoginOptions {
auth_type?: 'rerequest';
scope?: string;
return_scopes?: boolean;
enable_profile_selector?: boolean;
profile_selector_ids?: string;
}
export interface FacebookApiError {
message: string;
}
export declare const enum FacebookApiMethod {
Get = "get",
Post = "post",
Delete = "delete",
}
export interface FacebookApiParams {
[propName: string]: any;
}
export declare type FacebookApiCallback = (response?: {
error?: FacebookApiError;
[propName: string]: any;
}) => void;
export interface Facebook {
XFBML: {
parse: (element: HTMLElement, cb?: () => void) => void;
};
init: (params: FacebookInitParams) => void;
login: (callback?: (response: FacebookLoginResponse) => void, options?: FacebookLoginOptions) => void;
api: (path: string, method?: FacebookApiMethod | FacebookApiParams | FacebookApiCallback, params?: FacebookApiParams | FacebookApiCallback, callback?: FacebookApiCallback) => void;
}
export declare const FACEBOOK_DEFAULTS: FacebookInitParams;
export declare class FacebookService {
private ngZone;
private platformId;
sdk: ReplaySubject<Facebook>;
constructor(ngZone: NgZone, platformId: string);
load(locale?: string): Observable<Facebook>;
init(params?: FacebookInitParams, locale?: string): Observable<Facebook>;
login(options?: FacebookLoginOptions): Observable<FacebookAuth>;
api(path: string, method?: FacebookApiMethod | FacebookApiParams, params?: FacebookApiParams): Observable<Object>;
parse(element: HTMLElement): Observable<HTMLElement>;
reloadRenderedElements(): Observable<HTMLElement>;
}