how to change facebook graph api v1.0 - facebook-graph-api

If you want to authenticate the application with the API you from getting to facebook graph api v2.0, you have created, please tell me how to use it as v1.0.
After authenticating as facebook graph api v1.0, Is it possible to use all the features?

If you have created the Facebook application before April 30th (2014) you can use the entire v1 of the graph API, but after a user has authenticated under v2 it will use version 2 no matter what you configure or call (if it was productive and set to v1)
An example to use version 1 on the FB SDK for Javascript:
FB.init({
appId : 'your-fb-app-id',
cookie : true,
xfbml : true,
version: "v1.0", // here is the version (not really necessary for v1)
frictionlessRequests : false
});

Related

Using Spring Security to do operation on Facebook Graph API

Is there a way to use Spring Security to connect with Facebook and then retrieve a token which will be used to do some operations on the Facebook Graph API (profile name, groups, etc ...) and then refresh that token as long as the user is using my app ?
After some search, I found a detailed tutorial using this stack : Spring Security 5, Spring Boot 2.2 and ReactJS. I recommend it for everyone searching for the same subject : https://www.callicoder.com/spring-boot-security-oauth2-social-login-part-1/

WSO2 APIM : Get API Rating and Business Information through Store REST API

I have a custom page where I obtain Published API list using WSO2 Store Restful API
https://docs.wso2.com/display/AM220/apidocs/store/#!/operations#APICollection#apisGet
The problem is the returned result does not includes API Rating and Business Information whereas the Jaggery API that has been used by the default API Manager UI does include it. Is there any way to configure it so the REST API returns that data?
If I use the jaggery API instead, it is cookie based while I am using OAuth2 OIDC Service Provider of the IS. I cant obtain API that has visibility to only its own domain by passing access token to the Authorization header.
APIM Version: 2.2
Please Advice. Thanks!
There is no such a way which will change the output response of defined APIs.
If you want to do that, get source code of wso2 from github & edit the APIs & use the edited source to deploy your application. (But this will add lots of maintenance issue)
The quickest way is to call the get details of api.
It will return the business information object as well as below:
"businessInformation": {
"technicalOwner": "John Doe",
"technicalOwnerEmail": "architecture#pizzashack.com",
"businessOwner": "Jane Roe",
"businessOwnerEmail": "marketing#pizzashack.com"
},
Here you will get the heavy response as it returns the complete swagger definition as well.

WSO2 API Manager end user registration from Mobile(Android and iOS) Application using google or facebook sign-in

We are using WSO2 API Manager 1.10 and WSO2 Identity server 5.1.0 for managing back end REST APIs which will be consumed by Android and iOS application.For a end user(Mobile App user) to access the APIs exposed,process followed is:-
1.User registers to WSO2 IS server using WSO2 SCIM create user API.
2.User request for access token which will be used for accessing the APIs.
We are planning to add Google and facebook sign in feature in our Mobile app which will help end user avoid user creation in WSO2 IS. Does WSO2 API Manager support this sort of implementation? if so,what are the cofiguration changes we need to do to our current setup?
You can achieve this using identity federation. IS will act as key manager as well as it can federate the authentication to facebook/google.
you can find how facebook can be configured to get access token in this blog[1]. Similarly you can add google for federation[2]
[1] http://nuwanzone.blogspot.com/2015/10/getting-access-tokens-for-wso2-api.html
[2] https://docs.wso2.com/display/IS510/Configuring+Google

spring social facebook specific graph api version requests

Is it possible to change graph api level for spring social facebook api.
After getting access token, making a request with restOperationsApi and putting graph api version parameter to url does not work.
facebook.restOperations().getForObject("https://graph.facebook.com/v1.0/{pageId}/notes
This request result is "{"error":{"message":"(#12) notes API is deprecated for versions v2.0 and higher","type":"OAuthException","code":12}}"
When I debug response from facebook, i see in request header facebook app version is v2.1 even i put parameter to request url.
HTTP/1.1 400 Bad Request [WWW-Authenticate: OAuth "Facebook Platform" "invalid_request" "(#12) notes API is deprecated for versions v2.0 and higher", Facebook-API-Version: v2.1,
Thanks.

Does Facebook actually support OAuth 2.0?

I've already succesfully implemented LinkedIn and Twitter Oauth 2.0 authorization in my App with external libraries. But I have problems with Facebook. It seems like it has different authorization flow.
I need to have 3 endpoints to implement OAuth: request token url, access token url and authorize token url.
For LinkedIn and Twitter I have them:
REQ_TOKEN_URL="https://api.linkedin.com/uas/oauth/requestToken";
ACCESS_TOKEN_URL="https://api.linkedin.com/uas/oauth/accessToken";
AUTHORIZE_TOKEN_URL="https://api.linkedin.com/uas/oauth/authorize";
REQ_TOKEN_URL="https://api.twitter.com/oauth/request_token";
ACCESS_TOKEN_URL="https://api.twitter.com/oauth/access_token";
AUTHORIZE_TOKEN_URL="https://api.twitter.com/oauth/authorize";
But for Facebook instead of request token I have
OAUTH_FACEBOOK_DIALOG = "https://www.facebook.com/dialog/oauth";
And I'm not sure if it's equal. Probably not, since it doen's work the way it did with LinedIn and Twitter.
And in Facebook documentation they suggest to start with redirecting user to "https://www.facebook.com/dialog/oauth", but in classical OAuth 2.0 first I have to request the token from request_token_URL.
So the question is: is Facebook authorization flow actually not OAuth 2.0 and I have to use different approach?
Facebook does in fact fully support OAuth 2.0. Twitter currently does not support OAuth 2.0. LinkedIn OAuth 2.0 support I believe is still in beta. But yes, you will need to use a different approach for different versions of OAuth.