标签: facebook-graph-api

使用"share_open_graph"Facebook UI为测验结果创建动态共享对话框

简介:我的问题是通过share_open_graph方法获取FB.ui,以根据用户在页面上的操作创建包含不同标题,描述和图片的自定义共享对话框.

问题是我的第一个,我没有声誉,所以删除了很多链接,但(感谢所有给我支持的人)我已经能够拯救最初缺失的截图.


编辑:我最后不得不使用常规弹出窗口,其中有一个共享对话框,它不是理想的,但至少它可靠地工作.我越是环顾网络,越发现许多备受瞩目的网站仍然使用像这样的弹出式共享,所以我认为在这种情况下使用传统解决方案的优势超过了寻找合适解决方案的广泛工作,我用过https://developers.facebook.com/docs/sharing/reference/feed-dialog/v2.2,通过URL查询提供的动态详细信息至少比我最初使用的sharer.php用法更新一些看着Buzzfeed.


我的页面:

我有一个测验.十个问题,每个问题五个答案,产生一个结果,将五个选项之一指定为"结果".测验的一切都很棒.当通过Ajax/jQuery完成测验时,结果会被拉入 - 这样我将来可以为其他人构建一个基于PHP的前端来管理测验的创建. 虽然我很乐意在下面的代码中提供页面URL,但很抱歉 - 在我解决此问题之前,我无法公开发布,因此您无法访问它!

我的目标:

当显示测验的结果时,它还应该具有Facebook和Twitter共享按钮,这些按钮已被定制为包括适合于用户的测验结果的图片,标题和描述.

Twitter按钮很容易动态完成

我只是使用jQuery创建一个Twitter按钮,使用与任何地方相同的HTML,我的动态描述作为data-text属性提供,然后调用twttr.widgets.load();以激活按钮.

Facebook Share按钮就是问题所在

  • 我无法添加"普通"分享按钮 - 它只需要一个属性,即URL(每个测验结果不会更改).
  • 我不能改变页面上存在的通用Open Graph标签 - 尽管jQuery可以做到这一点,Facebook的缓存意味着它毫无意义.此外,每个页面上的通用共享按钮(FB/Twitter/G +)应保持不受影响,并始终共享默认的OG标记.

所以我正在做的是创建一个链接并使用jQuery将其附加到页面,然后使用jQuery设置click触发器操作.已使用FB.init()代码块成功设置应用程序ID.这些是我为点击触发器尝试的方法:

尝试1: FB.ui({ method: "feed" })

FB.ui({
  method: 'feed',
  name: "I got "+response.country+"! Which European are you destined to date?",
  link: "http://advice.uk.match.com/quizzes/which-european-are-you-destined-date",
  picture: response.image,
  description: response.body
});
Run Code Online (Sandbox Code Playgroud)

屏幕截图显示正确的详细信息,但在旧式半工作和已弃用的Feed对话框中

基本工作 - 图片,标题和描述都与测验结果一致(在本例中为"法语") - Feed对话框不仅被弃用,而且还远远低于"共享"对话框(见下文).我想做得好.

尝试2: FB.ui({ method: "share" })

FB.ui({
  method: 'share',
  href: …
Run Code Online (Sandbox Code Playgroud)

jquery facebook facebook-graph-api facebook-javascript-sdk fb.ui

47
推荐指数
2
解决办法
3万
查看次数

为什么新的fb api 2.4在带有Identity和oauth 2的MVC 5上返回null电子邮件?

一切都习以为常,直到fb将api升级到2.4 (我以前的项目中有2.3).

今天当我在fb开发人员上添加一个新的应用程序时,我得到了api 2.4.

问题:现在我从fb(loginInfo.email = null)收到空电子邮件.

当然,我检查了用户电子邮件在fb配置文件中处于公共状态,

我去了loginInfo对象,但没有找到任何其他电子邮件地址.

我谷歌,但没有找到任何答案.

请任何帮助..我有点迷路..

谢谢,

我的原始代码(适用于2.3 api):

在AccountController.cs中:

//
// GET: /Account/ExternalLoginCallback
[AllowAnonymous]
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
    var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
    if (loginInfo == null)
    {
        return RedirectToAction("Login");
    }
    //A way to get fb details about the log-in user: 
    //var firstNameClaim = loginInfo.ExternalIdentity.Claims.First(c => c.Type == "urn:facebook:first_name");  <--worked only on 2.3
    //var firstNameClaim = loginInfo.ExternalIdentity.Claims.First(c => c.Type == "urn:facebook:name"); <--works on 2.4 api …
Run Code Online (Sandbox Code Playgroud)

c# facebook facebook-graph-api asp.net-mvc-5 asp.net-identity-2

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

Facebook调试器:为什么抱怨app_id缺失

在使用facebook调试器时,它会抱怨:

警告fb:app_id尚未包含在元标记中.指定应用ID,以便将与Facebook共享的故事正确归因于该应用.或者,可以在打开共享对话框时在URL中设置app_id.否则,将分配默认应用程序ID(966242223397117).

我不明白为什么我有这样的消息,因为我没有app_id用于我的网站,我不应该为什么,因为我没有做任何Facebook连接或使用他们的任何插件.

我错过了什么,或者只是因为facebook想要推动我为我的网站创建一个应用程序?

facebook facebook-graph-api

46
推荐指数
2
解决办法
6万
查看次数

将标签添加到Facebook页面

我刚创建了一个facebook页面.我也有一个单独的Facebook APP.

如何在facebook页面中添加包含我的facebook APP的标签?

我已将应用程序设置为允许在页面上安装,并添加了选项卡名称,选项卡图像等,但当人们访问我的应用程序时,应用程序不会显示为要添加到Facebook页面上的应用程序

tabs facebook facebook-page facebook-graph-api

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

为我的域名中的每个页面获取Facebook"赞"数

我已将Facebook"赞"按钮集成到我网站的很多页面中.我想在列表中显示我网站上最"喜欢"的页面,但我无法弄清楚如何在一个请求中从Facebook获取该数据.到目前为止,我已经能够使用以下FQL查询获得单个页面的"Like"计数:

SELECT share_count, like_count, comment_count, total_count
FROM link_stat
WHERE url="http://www.mysite.com/some-page"
Run Code Online (Sandbox Code Playgroud)

但是,在我的网站上逐个获取每个页面的计数并不可行.除了有大量的页面,正在不断创造新的页面(新用户配置文件,新的博客,博客文章等),这将使越来越完整的统计我的网站复杂的过程,会涉及调用Facebook的API数千次.

有没有办法计算我的域中的每个页面在一个请求中被"喜欢"的次数?或者只是前10个最"喜欢"的页面,或类似的东西?

facebook-fql facebook-graph-api

44
推荐指数
4
解决办法
3万
查看次数

是否有一个API迫使Facebook再次抓取一个页面?

我知道您可以通过在Facebook的调试工具上输入URL来强制更新页面缓存,同时以该应用程序/页面的管理员身份登录:https: //developers.facebook.com/tools/debug

但我需要的是一种方法,只要我们的销售部门的某个人更新我们其中一个页面的主图像,就可以从我们的内部应用程序自动调用API端点或其他内容.要求数千名销售人员以管理员身份登录并在更新我们项目的描述或图像时手动更新页面缓存,这不是一种选择.

我们不能等待24小时让Facebook更新其缓存,因为我们每当我们改变它的时候没有看到更改出现时,我们每天都会得到客户的投诉.

caching facebook-sharer facebook-like facebook-graph-api facebook-opengraph

44
推荐指数
4
解决办法
4万
查看次数

通过PHP发布到Facebook粉丝页面的简单示例?

我做了很多搜索,我发现过时的教程不起作用......

我有一个用PHP制作的网站,当我在我的管理区域提交一个特定的表单时,我想发布到我的Facebook"粉丝页面"

没有RSS可用,所以你有什么例子来直接发布到使用PHP SDK中的Facebook粉丝页面(不是用户墙)?

谢谢!

php facebook facebook-wall facebook-graph-api facebook-fan-page

43
推荐指数
2
解决办法
9万
查看次数

在Android上使用Facebook SDK会给"用户以不同的Facebook用户身份登录".错误

我正在将我的Facebook SDK升级到最新版本.下面的代码从Facebook自己的例子中逐行提升,可以在这里找到:https://developers.facebook.com/docs/facebook-login/android/v2.3

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;

import java.util.Arrays;

public class TestFb extends FragmentActivity{

    CallbackManager callbackManager;
    FacebookController fbController;

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    fbController = FacebookController.getInstance(this);

    FacebookSdk.sdkInitialize(getApplicationContext());
    final LoginManager loginManager = LoginManager.getInstance();

    callbackManager = CallbackManager.Factory.create();
    loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                String userId = loginResult.getAccessToken().getUserId();
                String token = loginResult.getAccessToken().getToken();
                Log.d("fb", "ID: " + userId + …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api

43
推荐指数
4
解决办法
2万
查看次数

Facebook错误代码列表

我正在寻找当你尝试使用Graph API获取信息时所有Facebook都可以返回的列表.有人可以帮忙吗?

Facebook返回400 HTTP错误,以及JSON内容,如:

{
   "error": {
      "type": "OAuthException",
      "message": "Invalid OAuth access token signature."
   }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找可能得到的同类型的不同回报.

json facebook facebook-graph-api

42
推荐指数
4
解决办法
8万
查看次数

为什么我会收到"API参数中提供的appsecret_proof无效"

自Facebook上的最新变化以来,关于appsecret_proof:https://developers.facebook.com/docs/reference/api/securing-graph-api/,即使在启用/禁用Advanced功能后,我们仍然无法下载性能报告我们的应用程序中的设置,或应用其文档中描述的代码.

我们经常收到此错误:

{"error":{"message":"API参数中提供的appsecret_proof无效","类型":"GraphMethodException","code":100}}

我打开了一个保密的错误,但没有人回答我的回答.

我真的不知道我们还能尝试什么?

facebook facebook-graph-api app-secret

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