标签: facebook-c#-sdk

Facebook API是否允许自动更改旧帖子可见性?

换句话说,是否有一个API允许Facebook用户更改他们的帖子(通过第三方应用程序),这些帖子比指定的日期更早,从"朋友"列表可见到另一个,例如"仅"我"或"关闭朋友"?


人们越来越多地将他们的专业和熟人联系人添加为Facebook好友.

限制帖子的可见性是有意义的 - 以迎合不同的受众.

展望未来,这很容易,因为Facebook提供了充足的控制:

发布观众

但问题是,除非你从一开始就这样设置,否则没有现有功能可以自动将所有旧墙帖和照片的可见性更改为"仅限我","关闭朋友"等等.

这提出了一个问题,因为早在2004年12月手动逐个浏览帖子是不可行的:

Facebook发布可见性变化


在介绍时间轴时,Facebook确实提供了将所有帖子从"公共"更改为"朋友"的功能:

更改过去的帖子可见性


但是,现在还不可能将超过特定日期的帖子的观众更改为"仅限我","亲密朋友","朋友;除了:熟人"等.

但是,很明显,这样做的基本功能就在某处.

Facebook API中是否有可用于为此构建应用程序的功能?如果是这样,哪个?

facebook facebook-graph-api facebook-javascript-sdk facebook-c#-sdk facebook-apps

15
推荐指数
1
解决办法
4808
查看次数

Facebook C#SDK和访问令牌

我希望能够使用Facebook C#SDK在我自己的Web应用程序上验证自己(我的个人资料,而不仅仅是我的应用程序).使用Graph API,我可以获得访问令牌,但该令牌似乎与Facebook C#无法正常工作,因为它似乎是无状态的.

抛出的错误是:

(OAuthException) An active access token must be used to query information about the current user.
Run Code Online (Sandbox Code Playgroud)

我浏览了Facebook C#SDK和文档,我看到的大部分信息都是将用户重定向到登录页面,这不是我想要的.

有没有人有自己的自动记录样本,所以我可以提取自己的信息?

TIA

c# facebook facebook-c#-sdk

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

如何在处理使用Facebook API调用的服务方法时透明地更新Facebook访问令牌?

我有一个在IIS 7.5和VS 2010中运行的WCF服务.此服务有一些方法在内部使用Facebook C#SDK(版本4.1,而不是最新版本),以便从/向Facebook执行一些GET和POST.由于Facebook将很快删除offline_access我要处理,其中一个访问令牌已过期的情况.

我已经了解了执行身份验证的方式(为了获取代码并在获取访问令牌之后),以便使用Graph API获取Facebook信息(如此处所示).

我有两个问题:

  • 调用我的服务方法并从数据库中检索相应用户的令牌时,是否有办法知道访问令牌是否已过期?
    我已经读过,当执行Facebook API调用并且访问令牌过期时,会抛出以下异常:OAuthException.但有没有更好的方法来检测到期?我不想
    1. 调用Facebook API
    2. 处理异常
    3. 最后更新访问令牌
    4. 使用新的访问令牌重复初始调用.
  • 是否可以透明地更新用户的访问令牌(也将其存储在数据库中)并继续处理服务方法?在资源中,缺少重要的("更新访问令牌")部分(声明为[todo])

我想在服务方法的实现中实现以下方案:

sc = SocialNetworkAccountDao.GetByUser(user)

isExpired = call method to check if the sc.token is expired.

if (isExpired)

{

  newToken = call method for getting new access token

  sc.token = newToken;

  SocialNetworkAccount.Update(sc);

}

Facebook = new Facebook (sc.token)

Facebook.Post( ..... )

--
Run Code Online (Sandbox Code Playgroud)

QAuth对话通信的过程是异步的(执行重定向),并且与访问令牌url的通信以获得访问令牌,这是同步执行的.

最后的问题:

  • 有没有办法让服务方法等待我们从Facebook请求/回调中检索的新访问令牌,以便稍后继续使用新的访问令牌?

c# security facebook token facebook-c#-sdk

14
推荐指数
3
解决办法
7604
查看次数

适用于ASP.NET MVC3的可用成员资格入门套件/成员资格NuGet软件包?

我正在寻找一个适用于MVC3的会员入门套件/ NuGet包来处理用户管理以及Facebook身份验证和Twitter身份验证等事情.

Microsoft.Web.Helpers似乎有一些Facebook和Twitter助手,但我认为它没有我正在寻找的东西.

有一个很好的MVC会员入门套件可用,但我相信它适用于MVC2,我认为Facebook/Twitter支持可能超出其范围... https://github.com/TroyGoode/MembershipStarterKit

我觉得这应该存在,而我却找不到它.所以现在的问题...有谁知道一个NuGet包或入门套件,ASP.NET MVC3会员的管理,也许包括外的盒集成Facebook和Twitter的认证?

asp.net-membership nuget facebook-c#-sdk asp.net-mvc-3

12
推荐指数
2
解决办法
4520
查看次数

用户访问令牌,用于通过脸谱图搜索

根据此处给出的指令,搜索公共信息(如https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE)需要有一个有效的访问令牌.据我所知,访问令牌是指用户授权应用访问其信息的时间; 但这是灼热的公共信息.如何获取应用访问令牌来搜索公共信息?

在该页面中,Facebook会自动将我的访问令牌添加到链接中

https://graph.facebook.com/search?q=watermelon&type=post&access_token=MY_ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)

我的应用程序创建了一个访问令牌,如https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=SECRET_ID&grant_type=client_credentials

当我在url https://graph.facebook.com/search?q=watermelon&type=post&access_token=GENERATED_ACCESS_TOKEN中使用生成的访问令牌时,它会出错

{
   "error": {
      "message": "A user access token is required to request this resource.",
      "type": "OAuthException"
   }
}
Run Code Online (Sandbox Code Playgroud)
  1. 如何通过我的应用生成访问令牌?
  2. 或者我是否需要通过自己的用户帐户生成访问令牌?如果有,怎么样?
  3. 由于它正在搜索公共资料,因此Facebook不应该在每次搜索时都需要授权,我可以生成永久访问令牌来执行不同的搜索吗?

php facebook facebook-graph-api facebook-c#-sdk

12
推荐指数
2
解决办法
9918
查看次数

尝试以其访问权限禁止的方式访问套接字

我刚刚下载了C#SDK和ASP.NET MVC示例,将其修改为与4.2.1一起使用.(web config facebookSettings参数等),创建了我的Facebook应用程序并尝试运行它.点击Facebook登录按钮 - 确定,在facebook弹出窗口中输入凭据 - 确定,允许访问我的应用程序 - 好的,然后我收到此错误:

System.Net.Sockets.SocketException:尝试以其访问权限禁止的方式访问套接字66.220.146.47:443

var app = new FacebookApp();
if (app.Session == null)
{
   // The user isnt logged in to Facebook
   // send them to the home page
   return RedirectToAction("Index");
}

// Get the user info from the Graph API
dynamic me = app.Api("/me"); // EXCEPTION THROWN HERE
ViewData["FirstName"] = me.first_name;
ViewData["LastName"] = me.last_name;
Run Code Online (Sandbox Code Playgroud)

app物体是OK,我认为(含设置参数,可以与访问令牌会话对象和我的Facebook用户ID等)

我正在使用本地开发地址http://myappdev.local(设置为127.0.0.1hosts文件).我的Facebook应用程序设置中也设置了相同的地址,也是域名myappdev.local- 这可能是问题吗?我localhost:1234在一些教程中看到了一些例子.

c# facebook-c#-sdk

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

Facebook网络应用程序扩展权限第二步不显示

Update2 这篇文章已经老了但仍然相关..下面是我解决它的方式.我标记了其他人回答,因为我认为它更好地回答了这个问题.我在accountcontroller中调用了一个类似的方法(我将要重构:)).字符串应该是一个列表......我想你明白了.

/// <summary>
    /// Use this method when an action fails due to lack of priviligies. It will redirect user to facebook with provided permission request.
    /// Refactor to handle list of request.
    /// </summary>
    /// <param name="permission"></param>
    private static void AddAdditionalPermissions(string permission)
    {
        System.Diagnostics.Trace.TraceInformation(permission + " not authorized for user.");
        string facebook_urlAuthorize_base = "https://graph.facebook.com/oauth/authorize";
        string scope = permission; //see: https://developers.facebook.com/docs/authentication/permissions/ for extended permissions
        string urlAuthorize = facebook_urlAuthorize_base;
        urlAuthorize += "?client_id=" + AppId;
        urlAuthorize += "&redirect_uri=" + "https://fbd.anteckna.nu/";
        urlAuthorize …
Run Code Online (Sandbox Code Playgroud)

c# asp.net facebook facebook-c#-sdk asp.net-mvc-4

11
推荐指数
1
解决办法
6228
查看次数

创建Facebook AppSecret_Proof HMACSHA256需要C#帮助

Facebook要求我创建appsecret_proof:https: //developers.facebook.com/docs/graph-api/securing-requests

我使用以下代码完成了此操作:

public string FaceBookSecret(string content, string key)
{
        var encoding = new System.Text.ASCIIEncoding();
        byte[] keyByte = encoding.GetBytes(key);
        byte[] messageBytes = encoding.GetBytes(content);
        using (var hmacsha256 = new HMACSHA256(keyByte))
        {
            byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
            return Convert.ToBase64String(hashmessage);
        }
}
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错,但facebook说appsecret_proof无效.我已登录,当我删除密钥时,我可以正常地完成所有操作.所以节省一些时间:

  • 是的我发布到正确的URL
  • 是的我传递了有效的access_token
  • 是的我在证明中使用相同的access_token,就像我在请求中一样
  • 是的,我的appsecret很好,并且有效

使用示例

dynamic results = client.Post("/" + model.PostAsId + "/feed", new { message = model.Message, appsecret_proof = FaceBookSecret(postAs.AuthToken, AppSecret) });
Run Code Online (Sandbox Code Playgroud)

我认为它可能与编码或其他东西有关,但说实话,我只是不知道.

我也在使用Facebook .net SDK,但这在文档中没有多少,并且似乎没有涉及与自动化,服务器端操作等有关的任何事情.

谢谢

c# asp.net facebook hmac facebook-c#-sdk

11
推荐指数
2
解决办法
2026
查看次数

替换旧的GetAppUsers呼叫以查看使用我的应用程序的用户的朋友?

旧的REST API中的一个非常有用的调用是Friends.getAppUsers.此调用将返回正在使用应用程序的所有朋友.遗憾的是,这不在Open Graph API中.关于它有一个很好的Stack Overflow帖子,Facebook'Friends.getAppUsers'使用Graph API.

但是,可以使用Graph API进行FQL调用,如图API API资源管理器中所示.

我想也许我可以使用C#SDK进行以下调用:

fb.GetAsync("fql/?q=SELECT uid,username, is_app_user FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user=1");
Run Code Online (Sandbox Code Playgroud)

但是,这返回了一个错误.有没有办法解决GetAppUsers使用现有C#SDK 缺少呼叫的问题?

rest facebook facebook-c#-sdk

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

如何通过代码获取页面访问令牌?

我需要为我拥有的网页生成页面访问令牌,网页将使用此令牌发布到其Facebook页面订阅源.

这就是我做的:

  1. 转到Graph API Explorer
  2. 从下拉列表中选择我的应用
  3. 点击 Get Access Token
  4. 选择正确的权限(manage_pages/ user_events)

要获得Page Access Token我必须me/accounts在Graph API Explorer中运行.这将显示我使用新页面访问令牌(短期(大约60分钟))到每个页面的所有页面.

这样Page Access Token可以在我的C#代码中使用,以便发布到Feed.

问题

当另一个用户使用我的网页发布帖子时,我需要生成一个新的Page Access Token(在代码中),然后用它将用户帖子发布到网站的Facebook提要.问题是我显然不能在那里授予帖子,所以我该如何处理?

我显然不能运行me/accounts(在代码中)命令来Page Access Token从这里获取.

我已经查看了扩展的访问令牌,但这将持续60天,然后它将是与上面相同的问题.

c# facebook facebook-graph-api facebook-c#-sdk

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