【问题标题】:Facebook Graph API Search IssueFacebook Graph API 搜索问题
【发布时间】:2013-07-31 17:48:05
【问题描述】:

我创建了一个使用图形 API 的搜索栏,直到大约一个月前它还运行良好。您可以在搜索栏中输入一些内容,然后从 Facebook 获取与您的搜索参数相关的信息。它由于某种原因停止工作。所以我去了我的浏览器搜索栏,像这样手动输入图形搜索-

http://graph.facebook.com/search?q=zombies

这也不行了,我收到一条错误消息,上面写着这个-

{ “错误”: { "message": "(#200) 必须有一个有效的 access_token 才能访问这个端点", “类型”:“OAuthException”, “代码”:200 } }

是否有更新导致我的搜索停止工作?我一直在阅读 Facebook 的文档,但找不到我要找的东西。有人可以帮我重新开始工作吗?我的搜索位于http://ericnaff.com/html5/p3。这是我正在使用的脚本-

函数搜索FB(userSearchparameter) {

$.getJSON('https://graph.facebook.com/search?q=' + userSearchparameter + '&type=post&callback=?', function(fbResults){
    $.each(fbResults.data, function() {
        // Data Templating
        $('<article class="fbResults"></article>').append ( 

            '<section class="resultsSource"><h6 class="shareHeader">' +
            '<img class="fromUser" src="https://graph.facebook.com/' + this.from.id + '/picture" height="50" width="50" alt="' + this.from.name + '">' +
            '<a href="http://www.facebook.com/' + this.from.id + '" class="fromName">' + this.from.name +'</a> shared a <a class="typeLink" href="' + this.link + '">' + this.  
            type + '</a> </h6>' +
            '<time class="createdTime" datetime="' + this.created_time + '">' + fuzzyFacebookTime(this.created_time.replace(/-/g,'/')) + ' &middot;</time>' +
            '<img class="typeLinkIcon" src="' + this.icon + '" alt="icon"></section>' +
            '<section class="resultsDescription"><h6><a class="shareLink" href="' + this.link + '">' +
            '<img class="sharePicture" src="' + this.picture + '" height="90" width="90" alt="' + this.from.id + '">' +
            '<span class="shareName">' + this.name + '</span>' +
            '<span class="shareCaption">' + this.caption + '</span>' +
            '<span class="shareDescription">' + this.message + '</span>' +
            '</a></h6></section>' +
            '<iframe class="linkShare" src="http://facebook.com/plugins/like.php?href=' + this.link + '"></iframe>'
        ).appendTo('body');

我知道它说我的错误中没有正确的访问令牌,但它从一开始就没有使用过并且工作正常。如果我需要添加一个,我想在哪里包含它?谢谢!

【问题讨论】:

    标签: facebook-graph-api


    【解决方案1】:

    您将需要一个访问令牌;这意味着一个[已注册的 Facebook 应用][1]

    Facebook API changes Jul 10 '13:

    图形 API 搜索更改

    除 Places 和 Pages 之外的所有搜索 Graph API 调用都需要应用访问令牌。 将不再支持搜索应用程序。

    1. 创建 Facebook 开发者帐户
    2. 创建一个新的 Facebook 应用
    3. 获取https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=client_credentials
    4. 将返回的 access_token=... 附加到您的搜索请求中

    【讨论】:

    • 我刚刚在开发者部分注册了该应用程序。我有一个应用程序 ID 和密码。我把这些信息放在某个地方吗?如果是这样,我想把它放在哪里?我需要一个实际的访问令牌,还是自动生成的?
    • 更新了答案,需要获取一次url才能获取access_token
    • 所以我会把它放在这里?- 'graph.facebook.com/search?q=' + userSearchparameter + '&type=post&callback=?' + 'access_token=?????
    • 在它前面加一个&;你也可以省略 callback=?: $.getJSON('graph.facebook.com/search?q=' + userSearchparameter + '&type=post&access_token=??????', function(fbResults){
    • 成功了!非常感谢你。试图找出问题所在和位置是多么痛苦。现在在没有回调的情况下在 IE 中尝试。刚试过,我必须有 IE 的回调。一开始没用,后来加了回调。成功了!
    【解决方案2】:

    帖子搜索也需要访问令牌:

    来自Facebook's Developer Roadmap of Completed Changes

    图形 API 搜索更改

    除了帖子、地点之外,所有搜索图谱 API 调用都需要用户访问令牌 和页面。应用访问令牌也可用于 Post 搜索 Graph API 调用。地方和 页面搜索图 API 调用仍需要应用访问令牌。搜索应用程序 将不再受支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      相关资源
      最近更新 更多