标签: facebook-javascript-sdk

Oauth 2.0无法从signed_request"code"值获取访问令牌

我正在迁移到Oauth 2.0.我当前的站点使用JS SDK,有一个fb登录按钮,然后我访问Graph以获取用户详细信息.

我在获取访问令牌以从Graph获取此数据时遇到问题.

一个问题可能是JS SDK对话框没有将我的重定向到它应该指向的URL,即带有?code = XXXXXXX的URL,然后我可以使用它来获取访问令牌.

所以我看了php SDK(我正在使用ASP)来看看它是如何做到的.我已经在cookie中解析了signed-request值,得到了'code'参数中的值以添加到令牌URL但我无法获得访问令牌.这些是我正在使用的值:

解析的signed_request数据:

{"algorithm":"HMAC-SHA256","code":"2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc","issued_at":1323895617,"user_id":"XXXXXXXXXX"}

Token URL: https://graph.facebook.com/oauth/access_token?
           client_id=XXXXXXXX&
           redirect_uri=XXXXXXXX&
           client_secret=XXXXXX&
           code=2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc
Run Code Online (Sandbox Code Playgroud)

这是回应:

{"error":{"message":"Error validating verification code.","type":"OAuthException"}} 
Run Code Online (Sandbox Code Playgroud)

代码值是否显示格式正确?关于什么是错的任何想法?

facebook-graph-api access-token facebook-javascript-sdk facebook-oauth

7
推荐指数
1
解决办法
4259
查看次数

在验证应用之前获取Facebook用户的个人资料照片

摘要:

我正在开发一个通过Graph API连接到Facebook的网站.有人问我是否可以获得用户的个人资料图片,如果他们已经登录到Facebook,但在用户验证应用程序之前.这可能吗?

编辑: 我知道你可以通过访问获得人们的个人资料图片http://graph.facebook.com/USERNAME_OR_USERID/picture?type=large,但是如果他们登录Facebook但是我没有授权我的应用程序,我是否能够获得用户的用户名或ID?


细节:

根据Facebook API用户文档,您可以在没有access_token的情况下获取他们的Facebook ID,我知道如果您直接转到用户/我的URL,您可以看到他们的基本信息.通过Facebook ID,我可以获取他们的个人资料照片.

但是,当我尝试使用以下代码从网站上调用它时,我收到OAuthException错误.

FB.api('/me', function(response) {
    console.log(response);
});
Run Code Online (Sandbox Code Playgroud)

我猜他们必须验证应用程序,但我想看看我是否可能错过了获取他们的个人资料照片的方式.

谢谢你的帮助!

facebook facebook-graph-api facebook-javascript-sdk

7
推荐指数
1
解决办法
1万
查看次数

Facebook javascript SDK FB.login无法在Facebook iFrame中运行

我们正在使用Facebook JavaScript SDK来验证我们的Facebook应用程序.该应用程序使用Canvas URL配置为http://facebook.elgifto.com/Home/Index/.以下是我们用于验证Facebook用户的代码.

    <script type="text/javascript">
          window.fbAsyncInit = function() {
              debugger;
                  FB.init({
                      appId: '<%= ViewData["AppId"].ToString() %>', // App ID
                      channelUrl: '<%= ViewData["ChannelUrl"].ToString() %>', // Channel File
                      status: true, // check login status          
                      cookie: true, // enable cookies to allow the server to access the session
                      xfbml: true,  // parse XFBML
                      oauth: true
                  });

              FB.Event.subscribe('auth.login', function(response) {
                  if (response.status === 'connected') {
                      // the user is logged in and connected to your
                      // app, and response.authResponse supplies
                      // the …
Run Code Online (Sandbox Code Playgroud)

javascript facebook facebook-javascript-sdk facebook-authentication

7
推荐指数
1
解决办法
2万
查看次数

iOS网页/原生应用Facebook登录弹出 - 失败?

我正在尝试构建一个允许用户登录Facebook的Web应用程序.一切都适用于Firefox/Chrome/Safari(在手机/平板电脑和OSX上).

当应用程序在平板电脑上运行时(原生UIWebview和Web应用程序),它可以完美地加载第一页.

当用户点击"与Facebook连接"按钮时,该应用程序会加载Facebook登录页面.

在用户登录后(再次在Native UIWebview和web-app中),视图在URL上变为白色:'https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id = [APP_ID] ......' - 这似乎不应该发生......

如果我重新启动app/web-app,用户将自动登录,并重定向到成功页面.

我认为是导致问题的原因

当您在Firefox/Chrome/Safari浏览器中运行网页时,Facebook登录对话框会弹出一个弹出窗口或另一个选项卡(后者在本机Safari浏览器上).

我相信这是这个弹出页面的一个问题,以及当成功登录时Javascript如何与自身通信.一些与window.close那里是没有根页面返回(web视图作为web应用程序和UIWebView中只有一个实例)...也许?

失败的解决方法(UIWebview)

由于应用程序挂在前面提到的URL上,我决定添加一个if语句shouldStartLoadWithRequest(...)来强制UIWebview转到成功URL.

它加载URL,但之后Facebook的Javascript SDK函数FB.getLoginStatus函数返回'Connected'(每次我看到它确实返回'Connected')该函数FB.Event.subscribe('auth.logout' function() {...});被触发.

我不明白为什么它会记录用户,然后告诉我用户已连接(登录) - 按此顺序.

在我开始尝试构建这个100%原生之前的任何想法(并且必须忍受苹果的开发帐户并提交应用程序)?

登录脚本

<script>(function(d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=APP_ID";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>

        <script>
        var seccond_page = false;
        window.fbAsyncInit = function() {
            FB.init({
                appId      : '[APP_ID]',
                status     : true,
                cookie     : true,
                xfbml      : …
Run Code Online (Sandbox Code Playgroud)

facebook web-applications ios facebook-javascript-sdk facebook-ios-sdk

7
推荐指数
1
解决办法
1900
查看次数

Angularjs + OAuth + Play 2.0

我正在学习Angularjs为新项目创建单页面应用程序.后端将在REST风格的API中使用Play 2.0框架的Scala.我想使用FB,Twitter,Google,OpenId帐户有一种方式供用户注册和登录,但我不太了解OAuth以及如何使其与Angular和Play 2.0一起使用(当然我已开始阅读OAuth).

你对如何实现这个有什么想法吗?有没有任何libraties /工具来处理它?还是教程和例子?

编辑:正如Pere Villega所指出的,SecureSocial似乎是Play方面的一个很好的选择,但它遵循MVC模式(在服务器上生成的视图)而不是angularjs + play,这是更多的MVP(或MVVM)+ REST api on服务器.对于Angular,我找到了树苗.我必须弄清楚如何整合2.

scala oauth facebook-javascript-sdk playframework-2.0 angularjs

7
推荐指数
1
解决办法
5197
查看次数

从Facebook API用户/可标记的朋友更改个人资料图片的高度/宽度

我可以查询Facebook的API以获取可标记的朋友列表:

FB.api('me/taggable_friends', function (taggable) {
    document.getElementById('friends').innerHTML = JSON.stringify(taggable);
});
Run Code Online (Sandbox Code Playgroud)

但这只会将一个网址返回到一张微小的个人资料图片中.我想得到全尺寸的图片.

在Facebook Open Graph v2.0中,非应用用户的图片是否仍然可用?

上面的链接有Simon Cross的评论说"你可以使用......?Fields = width(n),height(n)来获得更大的图像"但我无法弄清楚正确的语法.

有谁知道这是如何工作的?

谢谢

facebook facebook-graph-api facebook-javascript-sdk

7
推荐指数
2
解决办法
4229
查看次数

检测是否在iOS/Android上的本机Facebook应用程序中加载了网页

我有一个使用Facebook javascript SDK的网络应用程序.我想检测此Web应用程序是否在iOS或Android上的本机Facebook应用程序中运行.原因是因为如果没有在适当的浏览器中运行,我想在浮动iframe中打开某些链接而不是新的网页/选项卡.

如何在本机Facebook应用程序中轻松检测是否在移动设备上运行.我知道答案建议使用FB.UA,但答案是3年,并且API不再被记录.

要么

是否可以指定HREF在移动设备上的本机浏览器中启动URL?然后我的链接可以启动浏览器,我的网络应用程序继续在Facebook本机应用程序中运行.

android facebook webview ios facebook-javascript-sdk

7
推荐指数
1
解决办法
1575
查看次数

如何通过facebook-sdk python api获取用户帖子?

我使用facebook-jssdk授权我的应用程序对用户个人资料和用户帖子进行读取访问.

FB.login(
    function(response) { },  
    {scope:'user_status,user_likes,user_photos,user_videos,user_questions,read_stream,user_posts'}
);
Run Code Online (Sandbox Code Playgroud)

然后我正在尝试接收用户帖子.导入json从时间导入mktime从urllib导入urlopen从facebook导入GraphAPI从datetime导入datetime

ga = GraphAPI()
access_token = ga.get_app_access_token(settings.FACEBOOK_APP_ID,     settings.FACEBOOK_APP_SECRET)

url = "https://graph.facebook.com/fql?q=SELECT+created_time+FROM+stream+ WHERE+source_id=%s+AND+created_time<%d&access_token=%s" % (
social_id,   # user id in facebook, taken from facebook-jssdk
int(mktime((datetime.now().timetuple()))),
access_token
)
data = json.loads(urlopen(url).read())
logger.debug(data)
# {u'data': []}


ga = GraphAPI(access_token)
ga.get_object('/508708815952422/posts/', token=token)
# {u'data': []}
Run Code Online (Sandbox Code Playgroud)

数据总是空的......我做错了什么?

有用信息: 由于"Facebook Login v2.5"权限要求审核才能正常运行. https://developers.facebook.com/docs/facebook-login/permissions/v2.2

python facebook facebook-graph-api facebook-javascript-sdk

7
推荐指数
1
解决办法
6462
查看次数

通过api/javascript sdk购买facebook页面的部分

Facebook推出了Facebook页面的商店部分.我需要通过javascript sdk管理我的页面的商店部分,但我无法找到propoer文档或参考这样做.我知道如何通过使用FB.api的post方法通过sdk来管理或更新页面的简单字段:

FB.api(/page_id_and_post_method, function(response) {
    console.log("PAGEEEEEE DETAILS", response);
});
Run Code Online (Sandbox Code Playgroud)

所以,问题是我找不到该"商店"部分的正确字段名称以便更新它.

那么如何通过sdk/api阅读/更新我的页面的"商店"部分,就像shopify所做的那样,如下所示:

https://www.facebook.com/Womansera/shop?ref=page_internal&rid=221671794535129&rt=9

facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk

7
推荐指数
1
解决办法
1805
查看次数

X天之内从http页面调用FB.api方法将停止工作。请更新您的网站以使用https进行Facebook登录

我正在本地主机上开发一个应用程序,突然出现此错误:

X天之内从http页面调用FB.api方法将停止工作。请更新您的网站以使用https进行Facebook登录。

时间到了,我仍然可以在localhost中进行开发吗?

facebook facebook-graph-api facebook-javascript-sdk

7
推荐指数
1
解决办法
7500
查看次数