Skip to content

Commit 5149c1d

Browse files
authored
Merge pull request #85 from NativeScript/tbozhikov/access-token
Provide a way to get the current access token
2 parents 0cc1b76 + d3636b6 commit 5149c1d

22 files changed

+115
-32
lines changed

demo-angular/app/pages/home/home.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
<StackLayout class="buttons">
1010
<FacebookLoginButton (logout)="onLogout($event)"></FacebookLoginButton>
1111
<Button text="Log out (custom)" (tap)="logout()"></Button>
12+
<Button text="Get current access token" (tap)="getCurrentAccessToken()"></Button>
1213
</StackLayout>
1314
</StackLayout>

demo-angular/app/pages/home/home.component.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,10 @@ export class HomeComponent {
5252
this.navigationService.go(['login'], "slideRight");
5353
});
5454
}
55+
56+
public getCurrentAccessToken() {
57+
let accessToken = Facebook.getCurrentAccessToken();
58+
59+
alert("Current access token: " + JSON.stringify(accessToken, null, '\t'));
60+
}
5561
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<StackLayout class="login-buttons">
22
<FacebookLoginButton (login)="onLogin($event)"></FacebookLoginButton>
33
<Button text="Continue with Facebook (custom)" (tap)="login()"></Button>
4+
<Button text="Get current access token" (tap)="getCurrentAccessToken()"></Button>
45
</StackLayout>

demo-angular/app/pages/login/login.component.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,10 @@ export class LoginComponent {
3333
}
3434
});
3535
}
36+
37+
public getCurrentAccessToken() {
38+
let accessToken = Facebook.getCurrentAccessToken();
39+
40+
alert("Current access token: " + JSON.stringify(accessToken, null, '\t'));
41+
}
3642
}

demo-angular/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
"typescript": "~2.4.2",
5353
"webpack": "~3.8.1",
5454
"webpack-bundle-analyzer": "^2.8.2",
55-
"webpack-sources": "~1.0.1"
55+
"webpack-sources": "~1.0.1",
56+
"uglifyjs-webpack-plugin": "~1.1.6"
5657
},
5758
"scripts": {
5859
"ns-bundle": "ns-bundle",

demo/app/home-page.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<StackLayout class="buttons">
1313
<Facebook:LoginButton logout="{{ onLogout }}"></Facebook:LoginButton>
1414
<Button automationText="customLogOut" tap="{{ logout }}" text="Log out (custom)"></Button>
15+
<Button automationText="getCurrentAccessToken" tap="{{ getCurrentAccessToken }}" text="Get current access token"></Button>
1516
</StackLayout>
1617
</StackLayout>
1718
</Page>

demo/app/home-view-model.ts

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Observable } from 'tns-core-modules/data/observable';
2-
import { LoginEventData, logout as fbLogout } from "nativescript-facebook";
2+
import { LoginEventData, logout as fbLogout, getCurrentAccessToken } from "nativescript-facebook";
33

44
let frameModule = require("tns-core-modules/ui/frame");
55
let appSettings = require("tns-core-modules/application-settings");
@@ -13,22 +13,22 @@ export class HomeViewModel extends Observable {
1313

1414
constructor() {
1515
super();
16-
// Get logged in user's info
17-
http.getJSON(config.FACEBOOK_GRAPH_API_URL + "/me?access_token=" + this.accessToken).then((res) => {
18-
this.set("username", res.name);
19-
this.set("userId", res.id);
20-
21-
// Get logged in user's avatar
22-
// ref: https://github.com/NativeScript/NativeScript/issues/2176
23-
console.log(config.FACEBOOK_GRAPH_API_URL + "/" + this.get("userId") + "/picture?type=large&redirect=false&access_token=" + this.accessToken);
24-
http.getJSON(config.FACEBOOK_GRAPH_API_URL + "/" + this.get("userId") + "/picture?type=large&redirect=false&access_token=" + this.accessToken).then((res) => {
25-
this.set("avatarUrl", res.data.url);
26-
}, function (err) {
27-
alert("Error getting user info: " + err);
28-
});
29-
}, function (err) {
30-
alert("Error getting user info: " + err);
31-
});
16+
// Get logged in user's info
17+
http.getJSON(config.FACEBOOK_GRAPH_API_URL + "/me?access_token=" + this.accessToken).then((res) => {
18+
this.set("username", res.name);
19+
this.set("userId", res.id);
20+
21+
// Get logged in user's avatar
22+
// ref: https://github.com/NativeScript/NativeScript/issues/2176
23+
console.log(config.FACEBOOK_GRAPH_API_URL + "/" + this.get("userId") + "/picture?type=large&redirect=false&access_token=" + this.accessToken);
24+
http.getJSON(config.FACEBOOK_GRAPH_API_URL + "/" + this.get("userId") + "/picture?type=large&redirect=false&access_token=" + this.accessToken).then((res) => {
25+
this.set("avatarUrl", res.data.url);
26+
}, function (err) {
27+
alert("Error getting user info: " + err);
28+
});
29+
}, function (err) {
30+
alert("Error getting user info: " + err);
31+
});
3232
}
3333

3434
private _navigate(path: string) {
@@ -50,4 +50,10 @@ export class HomeViewModel extends Observable {
5050
this._navigate("login-page");
5151
});
5252
}
53+
54+
public getCurrentAccessToken() {
55+
let accessToken = getCurrentAccessToken();
56+
57+
alert("Current access token: " + JSON.stringify(accessToken, null, '\t'));
58+
}
5359
}

demo/app/login-page.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
<StackLayout class="login-buttons">
55
<Facebook:LoginButton automationText="fbLogin" login="{{ onLogin }}"></Facebook:LoginButton>
66
<Button tap="{{ login }}" text="Continue with Facebook (custom)"></Button>
7+
<Button tap="{{ getCurrentAccessToken }}" text="Get current access token"></Button>
78
</StackLayout>
89
</Page>

demo/app/login-view-model.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Observable } from 'tns-core-modules/data/observable';
2-
import { LoginEventData, login as fbLogin } from "nativescript-facebook";
2+
import { LoginEventData, login as fbLogin, getCurrentAccessToken } from "nativescript-facebook";
33
let frameModule = require("tns-core-modules/ui/frame");
44
let appSettings = require("tns-core-modules/application-settings");
55

@@ -32,4 +32,10 @@ export class LoginViewModel extends Observable {
3232
}
3333
});
3434
}
35+
36+
public getCurrentAccessToken() {
37+
let accessToken = getCurrentAccessToken();
38+
39+
alert("Current access token: " + JSON.stringify(accessToken, null, '\t'));
40+
}
3541
}

demo/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"nativescript": {
33
"id": "org.nativescript.demo",
4-
"tns-ios": {
5-
"version": "3.4.0"
6-
},
74
"tns-android": {
85
"version": "3.4.0"
6+
},
7+
"tns-ios": {
8+
"version": "3.4.1"
99
}
1010
},
1111
"dependencies": {
@@ -43,7 +43,8 @@
4343
"wd": "~1.1.1",
4444
"webpack": "~3.8.1",
4545
"webpack-bundle-analyzer": "^2.8.2",
46-
"webpack-sources": "~1.0.1"
46+
"webpack-sources": "~1.0.1",
47+
"uglifyjs-webpack-plugin": "~1.1.6"
4748
},
4849
"scripts": {
4950
"ns-bundle": "ns-bundle",

0 commit comments

Comments
 (0)