相关疑难解决方法(0)

Android Facebook 4.0 SDK如何获取电子邮件,出生日期和用户性别

我使用以下代码.我想要用户的出生日期,电子邮件和性别.请帮忙.如何检索这些数据?

这是我onViewCreated()在片段中的内容.

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {

    // Setup TextView.
    mTextDetails = (TextView) view.findViewById(R.id.text_details);

    // Set up Login Button.
    LoginButton mButtonLogin = (LoginButton) view.findViewById(R.id.login_button);
    // setFragment only if you are using it inside a Fragment.
    mButtonLogin.setFragment(this);
    mButtonLogin.setReadPermissions("user_friends");
    mButtonLogin.setReadPermissions("public_profile");
    mButtonLogin.setReadPermissions("email");
    mButtonLogin.setReadPermissions("user_birthday");

    // Register a callback method when Login Button is Clicked.
    mButtonLogin.registerCallback(mCallbackManager, mFacebookCallback);

}
Run Code Online (Sandbox Code Playgroud)

这是我的回调方法.

private FacebookCallback<LoginResult> mFacebookCallback = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        Log.d("Shreks Fragment", "onSuccess");


        Profile profile = Profile.getCurrentProfile();
        Log.d("Shreks …
Run Code Online (Sandbox Code Playgroud)

android facebook-android-sdk facebook-sdk-4.0

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

使用OWIN标识从多个API客户端注册Web API 2外部登录

我想要以下架构(我已经为这个例子编写了产品名称):

在一台服务器 http://api.prettypictures.com 上运行的Web API 2应用程序

MVC 5客户端应用程序在另一台服务器上运行 http://www.webpics.com

我希望www.webpics.com客户端应用程序使用Pretty Pictures API:

  • 使用用户名和密码注册新帐户
  • 在Facebook/Google/Twitter/Microsoft注册新帐户
  • 登录
  • 检索图片

所有上述工作除了在Facebook,Google等注册外部账户外.

我无法确定从API的单独客户端用户创建外部帐户的正确流程.

我已经研究了认证流程中可用的大多数文档,如下所示: 在此输入图像描述

我已经在OWIN的新身份模型上阅读了我所能做的一切.

我已经在Visual Studio 2013中检查了SPA模板.它演示了如何完成我需要的大部分工作,但仅限于客户端和API在同一主机上时; 如果我希望多个客户端访问我的API并且能够让用户通过Google等注册,那么它就无法正常工作,而且我可以告诉OWIN身份验证流程中断.

到目前为止流程如下:

  • 用户浏览www.webpics.com/Login
  • www.webpics.com调用api.prettypictures.com/Account/ExternalLogins(用RETURNURL设置回去在回调www.webpics.com),并显示最终链接到用户
  • 用户点击"Google"
  • 浏览器使用提供者的名称重定向到api.prettypictures.com/Account/ExternalLogin等.
  • API的ExternalLogin操作实例化对google.com的挑战
  • 浏览器被重定向到google.com
  • 用户输入用户名和密码(如果他们尚未登录google.com)
  • google.com现在提供安全许可:"api.prettypictures.com"想要访问您的电子邮件地址,姓名,妻子,孩子等.这样可以吗?
  • 用户点击"是"并使用Google设置的Cookie将其带回api.prettypictures.com/Account/ExternalLogin.

这是我被卡住的地方.接下来应该发生的是以某种方式通知客户端应用程序用户已成功通过google.com进行身份验证,并获得一次性访问代码以便稍后交换访问令牌.如有必要,客户端应用程序应该有机会提示用户输入与google.com登录相关联的用户名.

我不知道如何促进这一点.

实际上,此时浏览器在谷歌回调后最终坐在api.prettypictures.com/Account/ExternalLogin端点上.该API已登录Google,但客户端不知道如何处理该问题.我应该将该饼干送回www.webpics.com吗?

在SPA应用程序中,它通过AJAX完成,google.com将返回一个令牌作为URL片段,它一切运行良好,因为它都在一个域上.但这远远超过了拥有多个客户可以充分利用的"API"的重要性.

救命!

asp.net-mvc oauth-2.0 owin asp.net-identity asp.net-web-api2

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

ASP.NET Web API 2:如何使用外部身份验证服务登录?

根据这篇文章http://www.asp.net/web-api/overview/security/external-authentication-services ...我能够使用本地身份验证服务登录(使用新的Asp.net身份框架)

但无法找到一个walktrough来正确调用(从移动应用程序或邮递员)Visual Studio 2013 SPA模板中生成的默认Web api.

谁能帮我?

.net asp.net oauth-2.0 asp.net-web-api asp.net-identity

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

获取电子邮件并命名Facebook SDK v4.4.0 Swift

TL; TR:如何使用facebook SDK 4.4获取在我的应用程序上登录的用户的电子邮件和名称

到目前为止,我已经设法登录工作,现在我可以从应用程序的任何位置获取当前访问令牌.

我如何配置登录视图控制器和Facebook登录按钮:

class LoginViewController: UIViewController, FBSDKLoginButtonDelegate {

    @IBOutlet weak var loginButton: FBSDKLoginButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        if(FBSDKAccessToken.currentAccessToken() == nil)
        {
            print("not logged in")
        }
        else{
            print("logged in already")
        }

        loginButton.readPermissions = ["public_profile","email"]
        loginButton.delegate = self

    }

    //MARK -FB login
    func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
        //logged in
        if(error == nil)
        {
            print("login complete")
            print(result.grantedPermissions)
        }
        else{
            print(error.localizedDescription)
        }

    }

    func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
        //logout
        print("logout")
    }
Run Code Online (Sandbox Code Playgroud)

现在在我的主视图中,我可以获得访问令牌,如下所示:

   let accessToken = FBSDKAccessToken.currentAccessToken()
    if(accessToken …
Run Code Online (Sandbox Code Playgroud)

facebook-sdk-4.0 swift

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