GVKun编程网logo

具有Java Asmack库的XMPP,支持X-FACEBOOK-PLATFORM(java支持arm吗)

14

本文将带您了解关于具有JavaAsmack库的XMPP,支持X-FACEBOOK-PLATFORM的新内容,同时我们还将为您解释java支持arm吗的相关知识,另外,我们还将为您提供关于#import

本文将带您了解关于具有Java Asmack库的XMPP,支持X-FACEBOOK-PLATFORM的新内容,同时我们还将为您解释java支持arm吗的相关知识,另外,我们还将为您提供关于#import "facebookSDK/FacebookSDK.h file not found"、android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()、android – 无法找到com.facebook.katana.provider.PlatformProvider的提供程序信息、com.facebook.FacebookCallback的实例源码的实用信息。

本文目录一览:

具有Java Asmack库的XMPP,支持X-FACEBOOK-PLATFORM(java支持arm吗)

具有Java Asmack库的XMPP,支持X-FACEBOOK-PLATFORM(java支持arm吗)

我正在尝试使用Smack库在Android上进行Facebook聊天。我已经从Facebook上阅读了Chat
API,但是我不明白如何使用此库向Facebook进行身份验证。

谁能指出我如何做到这一点?

更新 :根据no.good.at.coding的答案,我将此代码改编为Asmack库。一切正常,除了我收到登录响应:未经授权。这是我使用的代码:

public class SASLXFacebookPlatformMechanism extends SASLMechanism{    private static final String NAME              = "X-FACEBOOK-PLATFORM";    private String              apiKey            = "";    private String              applicationSecret = "";    private String              sessionKey        = "";    /**     * Constructor.     */    public SASLXFacebookPlatformMechanism(SASLAuthentication saslAuthentication)    {        super(saslAuthentication);    }    @Override    protected void authenticate() throws IOException, XMPPException    {        getSASLAuthentication().send(new AuthMechanism(NAME, ""));    }    @Override    public void authenticate(String apiKeyAndSessionKey, String host,            String applicationSecret) throws IOException, XMPPException    {        if (apiKeyAndSessionKey == null || applicationSecret == null)        {            throw new IllegalArgumentException("Invalid parameters");        }        String[] keyArray = apiKeyAndSessionKey.split("\\|", 2);        if (keyArray.length < 2)        {            throw new IllegalArgumentException(                    "API key or session key is not present");        }        this.apiKey = keyArray[0];        Log.d("API_KEY", apiKey);        this.applicationSecret = applicationSecret;        Log.d("SECRET_KEY", applicationSecret);        this.sessionKey = keyArray[1];        Log.d("SESSION_KEY", sessionKey);        this.authenticationId = sessionKey;        this.password = applicationSecret;        this.hostname = host;        String[] mechanisms = { "DIGEST-MD5" };        Map<String, String> props = new HashMap<String, String>();        this.sc =                Sasl.createSaslClient(mechanisms, null, "xmpp", host, props,                        this);        authenticate();    }    @Override    protected String getName()    {        return NAME;    }    @Override    public void challengeReceived(String challenge) throws IOException    {        byte[] response = null;        if (challenge != null)        {            String decodedChallenge = new String(Base64.decode(challenge));            Log.d("DECODED", decodedChallenge);            Map<String, String> parameters = getQueryMap(decodedChallenge);            String version = "1.0";            String nonce = parameters.get("nonce");            String method = parameters.get("method");            long callId = new GregorianCalendar().getTimeInMillis() / 1000L;            String sig =                    "api_key=" + apiKey + "call_id=" + callId + "method="                            + method + "nonce=" + nonce + "session_key="                            + sessionKey + "v=" + version + applicationSecret;            try            {                sig = md5(sig);                sig = sig.toUpperCase();            } catch (NoSuchAlgorithmException e)            {                throw new IllegalStateException(e);            }            String composedResponse =                    "api_key=" + URLEncoder.encode(apiKey, "utf-8")                            + "&call_id=" + callId + "&method="                            + URLEncoder.encode(method, "utf-8") + "&nonce="                            + URLEncoder.encode(nonce, "utf-8")                            + "&session_key="                            + URLEncoder.encode(sessionKey, "utf-8") + "&v="                            + URLEncoder.encode(version, "utf-8") + "&sig="                            + URLEncoder.encode(sig, "utf-8");            Log.d("COMPOSED", composedResponse);            response = composedResponse.getBytes("utf-8");        }        String authenticationText = "";        if (response != null)        {            authenticationText =                    Base64.encodeBytes(response, Base64.DONT_BREAK_LINES);        }        // Send the authentication to the server        getSASLAuthentication().send(new Response(authenticationText));    }    private Map<String, String> getQueryMap(String query)    {        Map<String, String> map = new HashMap<String, String>();        String[] params = query.split("\\&");        for (String param : params)        {            String[] fields = param.split("=", 2);            map.put(fields[0], (fields.length > 1 ? fields[1] : null));        }        return map;    }    private String md5(String text) throws NoSuchAlgorithmException,            UnsupportedEncodingException    {        MessageDigest md = MessageDigest.getInstance("MD5");        md.update(text.getBytes("utf-8"), 0, text.length());        return convertToHex(md.digest());    }    private String convertToHex(byte[] data)    {        StringBuilder buf = new StringBuilder();        int len = data.length;        for (int i = 0; i < len; i++)        {            int halfByte = (data[i] >>> 4) & 0xF;            int twoHalfs = 0;            do            {                if (0 <= halfByte && halfByte <= 9)                {                    buf.append((char) (''0'' + halfByte));                }                else                {                    buf.append((char) (''a'' + halfByte - 10));                }                halfByte = data[i] & 0xF;            } while (twoHalfs++ < 1);        }        return buf.toString();    }}

这就是与服务器之间通过已发送和已接收消息进行的通信:

PM SENT (1132418216): <stream:stream to="chat.facebook.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">PM RCV  (1132418216): <?xml version="1.0"?><stream:stream id="C62D0F43" from="chat.facebook.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0" xml:lang="en"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms></stream:features>PM SENT (1132418216): <auth mechanism="X-FACEBOOK-PLATFORM" xmlns="urn:ietf:params:xml:ns:xmpp-sasl"></auth>PM RCV  (1132418216): <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dmVyc2lvbj0xJm1ldGhvZD1hdXRoLnhtcHBfbG9naW4mbm9uY2U9NzFGNkQ3Rjc5QkIyREJCQ0YxQTkwMzA0QTg3OTlBMzM=</challenge>PM SENT (1132418216): <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">YXBpX2tleT0zMWYzYjg1ZjBjODYwNjQ3NThiZTZhOTQyNjVjZmNjMCZjYWxsX2lkPTEzMDA0NTYxMzUmbWV0aG9kPWF1dGgueG1wcF9sb2dpbiZub25jZT03MUY2RDdGNzlCQjJEQkJDRjFBOTAzMDRBODc5OUEzMyZzZXNzaW9uX2tleT0yNjUzMTg4ODNkYWJhOGRlOTRiYTk4ZDYtMTAwMDAwNTAyNjc2Nzc4JnY9MS4wJnNpZz04RkRDRjRGRTgzMENGOEQ3QjgwNjdERUQyOEE2RERFQw==</response>PM RCV  (1132418216): <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>

正如在开发人员Facebook论坛中所阅读的那样,需要从应用程序的Facebook设置页面上禁用“禁用已弃用的身份验证方法”设置。但是,即使这样做,我也无法登录。会话密钥是OAuth令牌的第二部分,格式为AAA
| BBB | CCC,我的意思是BBB。

答案1

小编典典

最后,由于使用了no.good.at.coding编码和骚扰的建议,我已经能够连接到Facebook聊天了。这段代码是Asmack库的机制(Android的Smack端口)。对于Smack库,必须使用no.good.at.coding机制。

SASLXFacebookPlatformMechanism.java:

import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.Map;import org.apache.harmony.javax.security.auth.callback.CallbackHandler;import org.apache.harmony.javax.security.sasl.Sasl;import org.jivesoftware.smack.SASLAuthentication;import org.jivesoftware.smack.XMPPException;import org.jivesoftware.smack.sasl.SASLMechanism;import org.jivesoftware.smack.util.Base64;public class SASLXFacebookPlatformMechanism extends SASLMechanism{    private static final String NAME              = "X-FACEBOOK-PLATFORM";    private String              apiKey            = "";    private String              applicationSecret = "";    private String              sessionKey        = "";    /**     * Constructor.     */    public SASLXFacebookPlatformMechanism(SASLAuthentication saslAuthentication)    {        super(saslAuthentication);    }    @Override    protected void authenticate() throws IOException, XMPPException    {        getSASLAuthentication().send(new AuthMechanism(NAME, ""));    }    @Override    public void authenticate(String apiKeyAndSessionKey, String host,            String applicationSecret) throws IOException, XMPPException    {        if (apiKeyAndSessionKey == null || applicationSecret == null)        {            throw new IllegalArgumentException("Invalid parameters");        }        String[] keyArray = apiKeyAndSessionKey.split("\\|", 2);        if (keyArray.length < 2)        {            throw new IllegalArgumentException(                    "API key or session key is not present");        }        this.apiKey = keyArray[0];        this.applicationSecret = applicationSecret;        this.sessionKey = keyArray[1];        this.authenticationId = sessionKey;        this.password = applicationSecret;        this.hostname = host;        String[] mechanisms = { "DIGEST-MD5" };        Map<String, String> props = new HashMap<String, String>();        this.sc =                Sasl.createSaslClient(mechanisms, null, "xmpp", host, props,                        this);        authenticate();    }    @Override    public void authenticate(String username, String host, CallbackHandler cbh)            throws IOException, XMPPException    {        String[] mechanisms = { "DIGEST-MD5" };        Map<String, String> props = new HashMap<String, String>();        this.sc =                Sasl.createSaslClient(mechanisms, null, "xmpp", host, props,                        cbh);        authenticate();    }    @Override    protected String getName()    {        return NAME;    }    @Override    public void challengeReceived(String challenge) throws IOException    {        byte[] response = null;        if (challenge != null)        {            String decodedChallenge = new String(Base64.decode(challenge));            Map<String, String> parameters = getQueryMap(decodedChallenge);            String version = "1.0";            String nonce = parameters.get("nonce");            String method = parameters.get("method");            long callId = new GregorianCalendar().getTimeInMillis();            String sig =                    "api_key=" + apiKey + "call_id=" + callId + "method="                            + method + "nonce=" + nonce + "session_key="                            + sessionKey + "v=" + version + applicationSecret;            try            {                sig = md5(sig);            } catch (NoSuchAlgorithmException e)            {                throw new IllegalStateException(e);            }            String composedResponse =                    "api_key=" + URLEncoder.encode(apiKey, "utf-8")                            + "&call_id=" + callId + "&method="                            + URLEncoder.encode(method, "utf-8") + "&nonce="                            + URLEncoder.encode(nonce, "utf-8")                            + "&session_key="                            + URLEncoder.encode(sessionKey, "utf-8") + "&v="                            + URLEncoder.encode(version, "utf-8") + "&sig="                            + URLEncoder.encode(sig, "utf-8");            response = composedResponse.getBytes("utf-8");        }        String authenticationText = "";        if (response != null)        {            authenticationText =                    Base64.encodeBytes(response, Base64.DONT_BREAK_LINES);        }        // Send the authentication to the server        getSASLAuthentication().send(new Response(authenticationText));    }    private Map<String, String> getQueryMap(String query)    {        Map<String, String> map = new HashMap<String, String>();        String[] params = query.split("\\&");        for (String param : params)        {            String[] fields = param.split("=", 2);            map.put(fields[0], (fields.length > 1 ? fields[1] : null));        }        return map;    }    private String md5(String text) throws NoSuchAlgorithmException,            UnsupportedEncodingException    {        MessageDigest md = MessageDigest.getInstance("MD5");        md.update(text.getBytes("utf-8"), 0, text.length());        return convertToHex(md.digest());    }    private String convertToHex(byte[] data)    {        StringBuilder buf = new StringBuilder();        int len = data.length;        for (int i = 0; i < len; i++)        {            int halfByte = (data[i] >>> 4) & 0xF;            int twoHalfs = 0;            do            {                if (0 <= halfByte && halfByte <= 9)                {                    buf.append((char) (''0'' + halfByte));                }                else                {                    buf.append((char) (''a'' + halfByte - 10));                }                halfByte = data[i] & 0xF;            } while (twoHalfs++ < 1);        }        return buf.toString();    }}

要使用它:

ConnectionConfiguration config = new ConnectionConfiguration("chat.facebook.com", 5222);config.setSASLAuthenticationEnabled(true);XMPPConnection xmpp = new XMPPConnection(config);try{    SASLAuthentication.registerSASLMechanism("X-FACEBOOK-PLATFORM", SASLXFacebookPlatformMechanism.class);    SASLAuthentication.supportSASLMechanism("X-FACEBOOK-PLATFORM", 0);    xmpp.connect();    xmpp.login(apiKey + "|" + sessionKey, sessionSecret, "Application");} catch (XMPPException e){    xmpp.disconnect();    e.printStackTrace();}

apiKey是Facebook的“应用程序设置”页面中提供的API密钥。sessionKey是访问令牌的第二部分。如果令牌的格式为AAA | BBB |
CCC,则BBB是会话密钥。sessionSecret是使用旧的REST
API和auth.promoteSession方法获得的。要使用它,需要使Http到达该URL:

https://api.facebook.com/method/auth.promoteSession?access_token=yourAccessToken

尽管有Facebook
Chat文档,但仍需要使用您的应用程序秘密密钥,只有当我使用返回了该REST方法的密钥时,我才能够使它起作用。为了使该方法有效,您必须在应用程序设置的“高级”选项卡中禁用“
禁用不赞成使用的 身份 验证方法” 选项。

#import <FacebookSDK/FacebookSDK.h>

#import "facebookSDK/FacebookSDK.h file not found"

第一种可能: 从window下上传到mac 下 facebook sdk出错!【这个是系统的错误,只能从其他地方拷贝 FacebookSDK.framework 文件夹 就ok】,下图是正常状态,【不正常的状态下,这几个文件直接是物理文件了】

第二种可能 ,设置读取路径错误


在mac下 project下找到build setting ,再找 searchPath,点击Framework search paths 设置路径即可

"$(SRCROOT)/xxx/xxx/FacebookSDK.framework"

android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()

android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()

我正在通过facebook实现登录并使用SDK 4.1.0获取用户电子邮件ID,如 facebook documentation所示,但问题是每次在onActivityResult之后调用registerCallback时,调用而不是onSuccess onCancel.

package com.dexterous.hellologin;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBaractivity;
import android.util.Log;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;


public class MainActivity2 extends ActionBaractivity {

CallbackManager callbackManager;

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


    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();

    setContentView(R.layout.activity_main_activity2);

    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("email");
    // If using in a fragment
    //   loginButton.setFragment(this);
    // Other app specific specialization
    // Callback registration
        loginButton.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
            Log.e("TAG","success");
        }

        @Override
        public void onCancel() {
            // App code
            Log.e("TAG","onCancel");
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Log.e("TAG","error");
        }
    });
}

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    callbackManager.onActivityResult(requestCode,data);
    Log.e("TAG","onActivityResult");
   }
}

每次我得到输出

onActivityResult

onCancel

我没有得到包含按钮取消和登录的facebook登录屏幕.

卸载Facebook应用程序从移动设备错误更改为无效的应用程序ID

这是堆栈跟踪

06-04 10:55:16.631 19864-19864/com.dexterous.hellologin I/WebViewFactory﹕ Loading com.google.android.webview version 42.0.2311.138 (code 2311138)
06-04 10:55:16.706 19864-19864/com.dexterous.hellologin I/LibraryLoader﹕ Time to load native libraries: 4 ms (timestamps 8772-8776)
06-04 10:55:16.706 19864-19864/com.dexterous.hellologin I/LibraryLoader﹕ Expected native library version number “”,actual native library version number “”
06-04 10:55:16.717 19864-19864/com.dexterous.hellologin W/art﹕ Attempt to remove local handle scope entry from IRT,ignoring
06-04 10:55:16.816 19864-19864/com.dexterous.hellologin V/WebViewChromiumFactoryProvider﹕ Binding Chromium to main looper Looper (main,tid 1) {28a6fbd9}
06-04 10:55:16.816 19864-19864/com.dexterous.hellologin I/LibraryLoader﹕ Expected native library version number “”,actual native library version number “”
06-04 10:55:16.819 19864-19864/com.dexterous.hellologin I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0,default verbosity = 0
06-04 10:55:16.834 19864-19864/com.dexterous.hellologin I/browserStartupController﹕ Initializing chromium process,singleProcess=true
06-04 10:55:16.838 19864-19864/com.dexterous.hellologin W/art﹕ Attempt to remove local handle scope entry from IRT,ignoring
06-04 10:55:16.841 19864-19864/com.dexterous.hellologin E/SysUtils﹕ ApplicationContext is null in ApplicationStatus
06-04 10:55:16.869 19864-19864/com.dexterous.hellologin W/chromium﹕ [WARNING:resource_bundle.cc(286)] locale_file_path.empty()
06-04 10:55:16.870 19864-19864/com.dexterous.hellologin I/chromium﹕ [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful,fd=63 off=46992 len=3337
06-04 10:55:16.871 19864-19864/com.dexterous.hellologin I/chromium﹕ [INFO:aw_browser_main_parts.cc(76)] Loading webviewchromium.pak from,fd:64 off:7953032 len:1161174
06-04 10:55:17.024 19864-19953/com.dexterous.hellologin W/chromium﹕ [WARNING:data_reduction_proxy_config.cc(150)] SPDY proxy OFF at startup
06-04 10:55:17.047 19864-19864/com.dexterous.hellologin W/art﹕ Attempt to remove local handle scope entry from IRT,ignoring
06-04 10:55:17.060 19864-19864/com.dexterous.hellologin W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
06-04 10:55:24.893 19864-19864/com.dexterous.hellologin W/BindingManager﹕ Cannot call determinedVisibility() – never saw a connection for the pid: 19864
06-04 10:55:26.140 19864-20020/com.dexterous.hellologin E/Adreno-ES20﹕ : Invalid texture format! Returning error!
06-04 10:55:26.140 19864-20020/com.dexterous.hellologin E/Adreno-ES20﹕ : Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-04 10:55:26.198 19864-19912/com.dexterous.hellologin E/Adreno-ES20﹕ : Invalid texture format! Returning error!
06-04 10:55:26.198 19864-19912/com.dexterous.hellologin E/Adreno-ES20﹕ : Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-04 10:58:32.287 19864-19864/com.dexterous.hellologin E/TAG﹕ onCancel
06-04 10:58:32.287 19864-19864/com.dexterous.hellologin E/TAG﹕ onActivityResult
06-04 10:59:25.498 19864-19864/com.dexterous.hellologin I/art﹕ Explicit concurrent mark sweep GC freed 16056(1325KB) AllocSpace objects,0(0B) LOS objects,39% free,9MB/16MB,paused 856us total 79.028ms

表现
    
    

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUetoOTH"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.dexterous.hellologin.MainActivity2"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main_activity2" >
    </activity>

    <Meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="1437829111203883" />

</application>

</manifest>

解决方法

Problem is here that you are using Facebook APPId directly and You should use Like this

<Meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />

In sting xml

<string name="app_id">1437829111203883 </string>

android – 无法找到com.facebook.katana.provider.PlatformProvider的提供程序信息

android – 无法找到com.facebook.katana.provider.PlatformProvider的提供程序信息

我想用Facebook登录我的应用程序,但我收到了Logcat的下一条消息:

Failed to find provider info for com.facebook.katana.provider.PlatformProvider

和启动器不加载.我得到我的哈希密钥like this.

我的代码是:

case R.id.btn_start_facebook:
        // callback when session changes state
        // start Facebook Login

        Session.openActiveSession(this, true, new Session.StatusCallback() {

            // callback when session changes state
            @Override
            public void call(Session session, SessionState state,
                    Exception exception) {
                if (session.isOpened()) {

                    // make request to the /me API
                    Request.executeMeRequestAsync(session,
                            new Request.GraphUserCallback() {

                                // callback after Graph API response
                                // with user object
                                @Override
                                public void onCompleted(GraphUser user,
                                        Response response) {
                                    if (user != null) {

                                        Log.d("myDebug",
                                                "Hello " + user.getName()
                                                        + " user id = "
                                                        + user.getId()
                                                        + "!");

                                    } else {
                                        Log.d("myDebug", "User is null");

                                    }

                                }
                            });
                }
            }
        });

解决方法:

在您的应用程序的清单中添加Internet权限

<uses-permission android:name="android.permission.INTERNET"/>

com.facebook.FacebookCallback的实例源码

com.facebook.FacebookCallback的实例源码

项目:kognitivo    文件:ShareInternalUtility.java   
public static void registerSharerCallback(
        final int requestCode,final CallbackManager callbackManager,final FacebookCallback<Sharer.Result> callback) {
    if (!(callbackManager instanceof CallbackManagerImpl)) {
        throw new FacebookException("Unexpected CallbackManager," +
                "please use the provided Factory.");
    }

    ((CallbackManagerImpl) callbackManager).registerCallback(
            requestCode,new CallbackManagerImpl.Callback() {
                @Override
                public boolean onActivityResult(int resultCode,Intent data) {
                    return handleActivityResult(
                            requestCode,resultCode,data,getShareResultProcessor(callback));
                }
            });
}
项目:kognitivo    文件:VideoUploader.java   
public static synchronized void uploadAsync(
        ShareVideoContent videoContent,String graphNode,FacebookCallback<Sharer.Result> callback)
        throws FileNotFoundException {
    if (!initialized) {
        registeraccesstokenTracker();
        initialized = true;
    }

    Validate.notNull(videoContent,"videoContent");
    Validate.notNull(graphNode,"graphNode");
    ShareVideo video = videoContent.getVideo();
    Validate.notNull(video,"videoContent.video");
    Uri videoUri = video.getLocalUrl();
    Validate.notNull(videoUri,"videoContent.video.localUrl");

    UploadContext uploadContext = new UploadContext(videoContent,graphNode,callback);
    uploadContext.initialize();

    pendingUploads.add(uploadContext);

    enqueueUploadStart(
            uploadContext,0);
}
项目:kognitivo    文件:VideoUploader.java   
private UploadContext(
        ShareVideoContent videoContent,FacebookCallback<Sharer.Result> callback) {
    // Store off the access token right away so that under no circumstances will we
    // end up with different tokens between phases. We will rely on the access token tracker
    // to cancel pending uploads.
    this.accesstoken = Accesstoken.getCurrentAccesstoken();
    this.videoUri = videoContent.getVideo().getLocalUrl();
    this.title = videoContent.getContentTitle();
    this.description = videoContent.getContentDescription();
    this.ref = videoContent.getRef();
    this.graphNode = graphNode;
    this.callback = callback;
    this.params = videoContent.getVideo().getParameters();
}
项目:kognitivo    文件:ShareApi.java   
private void shareLinkContent(final ShareLinkContent linkContent,final FacebookCallback<Sharer.Result> callback) {
    final GraphRequest.Callback requestCallback = new GraphRequest.Callback() {
        @Override
        public void onCompleted(GraphResponse response) {
            final JSONObject data = response.getJSONObject();
            final String postId = (data == null ? null : data.optString("id"));
            ShareInternalUtility.invokeCallbackWithResults(callback,postId,response);
        }
    };
    final Bundle parameters = new Bundle();
    this.addCommonParameters(parameters,linkContent);
    parameters.putString("message",this.getMessage());
    parameters.putString("link",Utility.getUriString(linkContent.getContentUrl()));
    parameters.putString("picture",Utility.getUriString(linkContent.getimageUrl()));
    parameters.putString("name",linkContent.getContentTitle());
    parameters.putString("description",linkContent.getContentDescription());
    parameters.putString("ref",linkContent.getRef());
    new GraphRequest(
            Accesstoken.getCurrentAccesstoken(),getGraPHPath("Feed"),parameters,HttpMethod.POST,requestCallback).executeAsync();
}
项目:kognitivo    文件:JoinAppGroupDialog.java   
@Override
protected void registerCallbackImpl (
        final CallbackManagerImpl callbackManager,final FacebookCallback<Result> callback) {
    final ResultProcessor resultProcessor = (callback == null)
            ? null
            : new ResultProcessor(callback) {
        @Override
        public void onSuccess(AppCall appCall,Bundle results) {
            callback.onSuccess(new Result(results));
        }
    };

    CallbackManagerImpl.Callback callbackManagerCallback = new CallbackManagerImpl.Callback() {
        @Override
        public boolean onActivityResult(int resultCode,Intent data) {
            return ShareInternalUtility.handleActivityResult(
                    getRequestCode(),resultProcessor);
        }
    };

    callbackManager.registerCallback(getRequestCode(),callbackManagerCallback);
}
项目:kognitivo    文件:CreateAppGroupDialog.java   
@Override
protected void registerCallbackImpl(
        final CallbackManagerImpl callbackManager,Bundle results) {
            callback.onSuccess(new Result(results.getString("id")));
        }
    };

    CallbackManagerImpl.Callback callbackManagerCallback = new CallbackManagerImpl.Callback() {
        @Override
        public boolean onActivityResult(int resultCode,callbackManagerCallback);
}
项目:kognitivo    文件:LoginManager.java   
/**
 * Registers a login callback to the given callback manager.
 * @param callbackManager The callback manager that will encapsulate the callback.
 * @param callback The login callback that will be called on login completion.
 */
public void registerCallback(
        final CallbackManager callbackManager,final FacebookCallback<LoginResult> callback) {
    if (!(callbackManager instanceof CallbackManagerImpl)) {
        throw new FacebookException("Unexpected CallbackManager," +
                "please use the provided Factory.");
    }
    ((CallbackManagerImpl) callbackManager).registerCallback(
            CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode(),Intent data) {
                    return LoginManager.this.onActivityResult(
                            resultCode,callback);
                }
            }
    );
}
项目:social-login-helper    文件:FacebookHelper.java   
public FacebookHelper(@NonNull FacebookListener facebookListener) {
  mListener = facebookListener;
  mCallBackManager = CallbackManager.Factory.create();
  FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
    @Override public void onSuccess(LoginResult loginResult) {
      mListener.onFbSignInSuccess(loginResult.getAccesstoken().getToken(),loginResult.getAccesstoken().getUserId());
    }

    @Override public void onCancel() {
      mListener.onFbSignInFail("User cancelled operation");
    }

    @Override public void onError(FacebookException e) {
      mListener.onFbSignInFail(e.getMessage());
    }
  };
  LoginManager.getInstance().registerCallback(mCallBackManager,mCallBack);
}
项目:android-paypal-example    文件:LoginActivity.java   
@OnClick(R.id.fb_login)
public void setUpFacebookLoginButton() {
    LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("email","public_profile"));
    LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            handleFacebookAccesstoken(loginResult.getAccesstoken());
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {
            if(!isNetworkConnected()){
                Snackbar.make(findViewById(android.R.id.content),"please check internet connection",Snackbar.LENGTH_SHORT).show();
            }else{
                Snackbar.make(findViewById(android.R.id.content),"unexpected error,please try again later",Snackbar.LENGTH_SHORT).show();
            }
        }
    });
}
项目:Stalker    文件:AuthenticateFragment.java   
protected void registerFacebookCallback() {
    LoginManager.getInstance().registerCallback(facebookCallbackManager,new FacebookCallback<LoginResult>() {

                @Override
                public void onSuccess(LoginResult loginResult) {
                    // App code
                    Log.d(TAG,"Login Success");
                    handleFacebookAccesstoken(loginResult.getAccesstoken());
                }

                @Override
                public void onCancel() {
                    // App code
                    Log.d(TAG,"Login canceled");
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                    Log.d(TAG,"Login error");
                }
            });
}
项目:firebase-chat-android-architecture-components    文件:ProfileActivity.java   
private void setupFacebookLogin() {
    mFacebookCallbackManager = CallbackManager.Factory.create();

    binding.facebookButton.setReadPermissions("email","public_profile");

    // Callback registration
    binding.facebookButton.registerCallback(mFacebookCallbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            firebaseAuthWithFacebook(loginResult.getAccesstoken());
        }

        @Override
        public void onCancel() {
            Toast.makeText(ProfileActivity.this,"Facebook Authentication cancelled.",Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(FacebookException exception) {
            Toast.makeText(ProfileActivity.this,"Facebook Authentication Failed.",Toast.LENGTH_SHORT).show();
            Timber.e(exception);
        }
    });
}
项目:enklave    文件:LoginFacebook.java   
public LoginFacebook(LoginButton login,Activity context,PreferencesShared pref,final Intent intent) {
    callbackManager = CallbackManager.Factory.create();
    this.context = context;
    preferencesShared = pref;
    login.setReadPermissions(Arrays.asList("public_profile","user_friends"));
    login.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            //Log.d("facebook","succes" + loginResult.getAccesstoken().getToken() + "id" + loginResult.getAccesstoken().getExpires() + "data" + loginResult.getAccesstoken().getUserId());
            conectedwithFacebook(loginResult.getAccesstoken().getToken(),intent);
        }

        @Override
        public void onCancel() {
            Log.d("intra","facebook");
        }

        @Override
        public void onError(FacebookException error) {
            Log.d("facebook","error" + error.toString());
        }

    });
}
项目:apn_fb_login    文件:FacebookHelper.java   
public static FacebookCallback<LoginResult> loginResultCallback(final MethodChannel.Result result,final OnLoginSuccessListener onLoginSuccess) {
    return new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            onLoginSuccess.onLoginResult(loginResult);
        }

        @Override
        public void onCancel() {
            result.error(TAG,"Cancelled",null);
        }

        @Override
        public void onError(FacebookException exception) {
            result.error(TAG,exception.getMessage(),null);
        }
    };
}
项目:AndroidBlueprints    文件:FacebookHelper.java   
/**
 * Register call back manager.
 *
 * @param activity the activity
 */
private void registerCallBackManager(final Activity activity) {
    LoginManager.getInstance()
            .registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    mLoginResult = loginResult;
                    getUserProfile(activity);
                }

                @Override
                public void onCancel() {
                    mFacebookLoginResultCallBack.onFacebookLoginCancel();
                }

                @Override
                public void onError(FacebookException error) {
                    mFacebookLoginResultCallBack.onFacebookLoginError(error);
                }
            });
}
项目:AndroidBlueprints    文件:FacebookHelper.java   
/**
 * Register call back manager to Google log in button.
 *
 * @param activity    the activity
 * @param loginButton the login button
 */
private void registerCallBackManager(final Activity activity,LoginButton loginButton) {
    loginButton.registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            mLoginResult = loginResult;
            getUserProfile(activity);
        }

        @Override
        public void onCancel() {
            mFacebookLoginResultCallBack.onFacebookLoginCancel();
        }

        @Override
        public void onError(FacebookException error) {
            mFacebookLoginResultCallBack.onFacebookLoginError(error);
        }
    });
}
项目:BizareChat    文件:RegistrationPresenterImpl.java   
@Override
public void setCallbackToLoginFacebookButton() {

    callbackManager = CallbackManager.Factory.create();

    LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Bundle param = new Bundle();
            param.putString("fields","id,email");
            facebookLink(loginResult);
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {
            Logger.logExceptionToFabric(error);
        }
    });
}
项目:social-journal    文件:LoginActivity.java   
void initializefacebookLogin() {
    // Initialize Facebook Login button
    mCallbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = (LoginButton) findViewById(R.id.button_facebook_login);
    loginButton.setReadPermissions("email","public_profile","user_posts","user_photos");
    loginButton.registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d(TAG,"facebook:onSuccess:" + loginResult);
            handleFacebookAccesstoken(loginResult.getAccesstoken());
        }

        @Override
        public void onCancel() {
            Log.d(TAG,"facebook:onCancel");
            // ...
        }

        @Override
        public void onError(FacebookException error) {
            Log.w(TAG,"facebook:onError",error);
        }
    });
}
项目:android-RSS-Feed-reader    文件:SignInPresenter.java   
@Override
public void onFacebookLoginBntClick(LoginButton loginButton) {
        mCallbackManager = CallbackManager.Factory.create();
        loginButton.setReadPermissions("email","public_profile");
        loginButton.registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                handleFacebookAccesstoken(loginResult.getAccesstoken());
            }

            @Override
            public void onCancel() {
            }

            @Override
            public void onError(FacebookException error) {
                getView().showSnackBar(error.getMessage());
            }
        });
}
项目:sabbath-school-android    文件:SSLoginviewmodel.java   
private void configureFacebookLogin(){
    FacebookSdk.sdkInitialize(context.getApplicationContext());
    ssFacebookCallbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(ssFacebookCallbackManager,new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    handleFacebookAccesstoken(loginResult.getAccesstoken());
                }

                @Override
                public void onCancel() {
                    // Todo: Handle unsuccessful / cancel
                }

                @Override
                public void onError(FacebookException exception) {
                    loginFailed(exception.getMessage());
                }
            });
}
项目:HaiNaBaiChuan    文件:LoginFragment.java   
private void initFaceBookLogin() {
    callbackManager = CallbackManager.Factory.create();
    btnLoginFacebook.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            showDialog();
            presenter.requestFacebook(loginResult);
            LogUtil.e2(loginResult.getAccesstoken().toString());
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {

        }
    });
}
项目:vdb-android    文件:BaseActivity.java   
private void setFacebookRule() {
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    EventBus.getDefault().post(MessageEvent.UPDATE_FACEBOOK_PROFILE);
                }

                @Override
                public void onCancel() {
                    Log.d("Teste","deu errp");
                }

                @Override
                public void onError(FacebookException exception) {
                    Log.d("ErrorF",exception.toString());
                }
            }
    );

    Profile profile = Profile.getCurrentProfile();

    if (profile != null) {
        this.sidebar.showHidelogoff(true);
    } else {
        this.sidebar.showHidelogoff(false);
    }

}
项目:Popdeem-SDK-Android    文件:PDUIConnectSocialAccountFragment.java   
private void registerFacebookLoginManagerCallback() {
        LoginManager.getInstance().registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                connectFacebookAccount();
            }

            @Override
            public void onCancel() {
                PDAbraLogEvent.log(PDAbraConfig.ABRA_EVENT_CANCELLED_FACEBOOK_LOGIN,null);
//                PDLog.d(PDUISocialLoginFragment.class,"Facebook Login onCancel()");
//                if (getActivity() != null) {
//                    PDUIDialogUtils.showBasicOKAlertDialog(getActivity(),R.string.pd_common_facebook_login_cancelled_title_text,R.string.pd_common_facebook_login_cancelled_message_text);
//                }
            }

            @Override
            public void onError(FacebookException error) {
                PDLog.d(PDUISocialLoginFragment.class,"Facebook Login onError(): " + error.getMessage());
                if (getActivity() != null) {
                    PDUIDialogUtils.showBasicOKAlertDialog(getActivity(),R.string.pd_common_sorry_text,error.getMessage());
                }
            }
        });
    }
项目:Udacity-Capstone-Project    文件:SessionFragment.java   
private void facebookmanger() {
    lBFrgLoginFacebook.setReadPermissions("email");
    lBFrgLoginFacebook.setFragment(this);
    lBFrgLoginFacebook.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    presenter.doLoginWithFacebook(loginResult);
                    Timber.e(loginResult.toString());
                }

                @Override
                public void onCancel() {
                }

                @Override
                public void onError(FacebookException exception) {
                    EventBus.getDefault().post(new EventSnackBar().withMessage(getString(R.string.error_facebook_connection)));
                }
            });
}
项目:android-oss    文件:LoginToutviewmodel.java   
private void registerFacebookCallback() {
  final PublishSubject<String> fbAccesstoken = this.facebookAccesstoken;
  final BehaviorSubject<FacebookException> fbAuthError = this.facebookAuthorizationError;

  this.callbackManager = CallbackManager.Factory.create();

  LoginManager.getInstance().registerCallback(this.callbackManager,new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(final @NonNull LoginResult result) {
      fbAccesstoken.onNext(result.getAccesstoken().getToken());
    }

    @Override
    public void onCancel() {
      // continue
    }

    @Override
    public void onError(final @NonNull FacebookException error) {
      if (error instanceof FacebookAuthorizationException) {
        fbAuthError.onNext(error);
      }
    }
  });
}
项目:aptoide-client-v8    文件:AddressBookFragment.java   
private void registerFacebookCallback() {
  LoginManager.getInstance()
      .registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override public void onSuccess(LoginResult loginResult) {
          FacebookModel facebookModel = createFacebookModel(loginResult);
          mActionsListener.syncFacebook(facebookModel);
        }

        @Override public void onCancel() {
        }

        @Override public void onError(FacebookException error) {
          Logger.e(this.getClass()
              .getName(),error.getMessage());
        }
      });
}
项目:aptoide-client-v8    文件:AccountNavigator.java   
public void navigatetoFacebookSignUpForResult(Collection<String> permissions) {
  facebookLoginManager.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
    @Override public void onSuccess(LoginResult loginResult) {
      facebookLoginSubject.call(
          new FacebookLoginResult(loginResult,FacebookLoginResult.STATE_SUCCESS,null));
    }

    @Override public void onCancel() {
      facebookLoginSubject.call(
          new FacebookLoginResult(null,FacebookLoginResult.STATE_CANCELLED,null));
    }

    @Override public void onError(FacebookException error) {
      facebookLoginSubject.call(
          new FacebookLoginResult(null,FacebookLoginResult.STATE_ERROR,error));
    }
  });
  facebookLoginManager.logInWithReadPermissions(activityNavigator.getActivity(),permissions);
}
项目:RxLogin    文件:FacebookSubscriber.java   
@Override public void subscribe(FlowableEmitter<LoginResult> emitter) throws Exception {
    mCallback = new FacebookCallback<LoginResult>() {
        @Override public void onSuccess(LoginResult result) {
            if (!emitter.isCancelled()) {
                emitter.onNext(result);
                emitter.onComplete();
            }
        }

        @Override public void onCancel() {
            if (!emitter.isCancelled()) {
                emitter.onError(new LoginException(LoginException.LOGIN_CANCELED));
            }
        }

        @Override public void onError(FacebookException error) {
            if (!emitter.isCancelled()) {
                emitter.onError(new LoginException(LoginException.FACEBOOK_ERROR,error));
            }
        }
    };
    mRxLogin.registerCallback(mCallback);
}
项目:SplitApp    文件:LoginActivity.java   
private void addLoginButton() {
    LoginButton loginButton = (LoginButton) this.findViewById(R.id.login_button);
    loginButton.setReadPermissions(Arrays.asList("email","user_friends","user_birthday"));
    loginButton.registerCallback(fbCallbackManager,new FacebookCallback<LoginResult>() {

        private ProfileTracker mProfileTracker;

        @Override
        public void onSuccess(LoginResult loginResult) {

        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {

        }
    });
}
项目:zum-android    文件:SignUpActivity.java   
private void registerCallback() {
    LoginManager.getInstance().registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            getUserEmail(loginResult.getAccesstoken());
        }

        @Override
        public void onCancel() {
            Snackbar.make(mRootView,R.string.facebook_cancel,Snackbar.LENGTH_SHORT).show();
        }

        @Override
        public void onError(FacebookException error) {
            Snackbar.make(mRootView,error.getLocalizedMessage(),Snackbar.LENGTH_SHORT).show();
        }
    });
}
项目:FastFoodFinder    文件:LoginActivity.java   
private CallbackManager setupFacebookSignIn() {
    CallbackManager callbackManager = CallbackManager.Factory.create();
    fbSignInButton.setReadPermissions("email","public_profile");

    fbSignInButton.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d("MAPP","facebook:onSuccess: " + loginResult);
            handleFacebookAccesstoken(loginResult.getAccesstoken());
        }

        @Override
        public void onCancel() {
            Log.d("MAPP","facebook:onCancel");
            // ...
        }

        @Override
        public void onError(FacebookException error) {
            Log.d("MAPP",error);
            // ...
        }
    });

    return callbackManager;
}
项目:FirebaseAuthExample    文件:LoginActivity.java   
@Override
public void initFbLoginButton() {
    mCallbackManager = CallbackManager.Factory.create();
    mLoginFbButton.setReadPermissions("email","public_profile");
    mLoginFbButton.registerCallback(mCallbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Timber.d("facebook:onSuccess:" + loginResult);
            mPresenter.handleFacebookAccesstoken(loginResult.getAccesstoken());
        }

        @Override
        public void onCancel() {
            Timber.d("facebook:onCancel");
        }

        @Override
        public void onError(FacebookException error) {
            Timber.d("facebook:onError",error);
        }
    });
}
项目:Focus-Android-App    文件:LoginActivity.java   
protected void getLoginDetails(LoginButton login_button) {

        // Callback registration
        login_button.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult login_result) {
                getUserInfo(login_result);
            }

            @Override
            public void onCancel() {
                // code for cancellation
            }

            @Override
            public void onError(FacebookException exception) {
                //  code to handle error
            }
        });
    }
项目:Komica    文件:ThirdPartyManager.java   
private void registerFacebookCallback() {
    LoginManager.getInstance().registerCallback(FacebookManager.getInstance().getCallbackManager(),new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            fetchProfile();
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {
        }
    });
}
项目:bachamada    文件:FacebookShare.java   
private void initFB() {
    FacebookSdk.sdkInitialize(mContext);
    callbackManager = CallbackManager.Factory.create();
    mShareDialog = new ShareDialog(mContext);
    // this part is optional
    mShareDialog.registerCallback(callbackManager,new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {

        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {

        }
    });
}
项目:Move-Alarm_ORCA    文件:ShareInternalUtility.java   
public static void registerSharerCallback(
        final int requestCode,getShareResultProcessor(callback));
                }
            });
}
项目:Move-Alarm_ORCA    文件:ShareApi.java   
private void shareLinkContent(final ShareLinkContent linkContent,response);
        }
    };
    final Bundle parameters = new Bundle();
    parameters.putString("link","/me/Feed",requestCallback).executeAsync();
}
项目:Move-Alarm_ORCA    文件:JoinAppGroupDialog.java   
@Override
protected void registerCallbackImpl (
        final CallbackManagerImpl callbackManager,callbackManagerCallback);
}
项目:Move-Alarm_ORCA    文件:CreateAppGroupDialog.java   
@Override
protected void registerCallbackImpl(
        final CallbackManagerImpl callbackManager,callbackManagerCallback);
}
项目:Move-Alarm_ORCA    文件:LoginManager.java   
/**
 * Registers a login callback to the given callback manager.
 * @param callbackManager The callback manager that will encapsulate the callback.
 * @param callback The login callback that will be called on login completion.
 */
public void registerCallback(
        final CallbackManager callbackManager,callback);
                }
            }
    );
}

关于具有Java Asmack库的XMPP,支持X-FACEBOOK-PLATFORMjava支持arm吗的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于#import "facebookSDK/FacebookSDK.h file not found"、android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()、android – 无法找到com.facebook.katana.provider.PlatformProvider的提供程序信息、com.facebook.FacebookCallback的实例源码等相关知识的信息别忘了在本站进行查找喔。

本文标签: