标签: facebook-android-sdk

Android无效密钥和Facebook Connect

当我尝试在我的Android应用程序中实现Facebook Connect时,出现以下错误.

11-02 16:41:31.660:D/Facebook-authorize(13194):登录失败:invalid_key:Android密钥不匹配.您的密钥"8Ioc4p/jMXoU9Lezug4nzmZfFUg"与应用程序设置中指定的允许密钥不匹配.在http://www.facebook.com/developers上查看您的应用程序设置

我重置Facebook应用程序中的密钥仍然显示相同的错误.我该如何解决?

android facebook facebook-android-sdk

30
推荐指数
3
解决办法
5万
查看次数

使用Android对我的服务器进行Facebook身份验证

我正在使用以下块构建应用程序:

Android - 客户端,Java Servlets - Sever Side,Facebook应用程序 - 用于验证用户和处理他们的数据.

我的问题如下:我想通过Facebook验证我的用户(例如从Android客户端使用facebook-android-sdk发送到facebook的请求),但后来我想向我的服务器发送请求(由servlets)并以某种方式验证发送请求的用户是否已通过Facebook和我的应用程序验证.

所以这些是步骤:

用户X使用facebook-android-sdk验证到Facebook和我的Facebook应用程序.X正在向我的服务器发送请求

至于服务器,我只想知道它是一个正在使用我的用户,我不需要服务器来执行任何Graph API请求.

我怎么知道X在我的服务器中有效?在这种情况下,身份验证是在客户端执行的.

android facebook servlets facebook-android-sdk

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

获取好友列表facebook 3.0

我正在尝试使用新的SDK(3.0)从facebook获取我的朋友列表.我遇到了与我需要在Bundle中插入什么类型的params以及如何使用newMyFriendRequest和GraphAPI相关的问题.

我没有在facebook文档中找到关于我们必须使用哪种字段的地方.基于GraphExplorer,我在我的Bundle中插入了带有"id,name,friend"字符串的键"fields"作为值.下面的代码显示了我现在正在做的事情.在我得到我的照片和名字后,我执行newMyFriendRequest.我相信它默认使用GraphAPI.

我在StackOverflow上看过一些相关帖子:

如何使用新的Android SDK发送FQL查询

Facebook Android SDK请求参数:在哪里查找文档?

它对我帮助很小,我不想使用FQL.对于响应II我收到这个JSON就像一个答案:

{Response:  responseCode: 500, graphObject: null, error: {HttpStatus: 500, errorCode: 100, errorType: FacebookApiException, errorMessage: Unsupported operation}, isFromCache:false}
Run Code Online (Sandbox Code Playgroud)

请注意,我是Facebook SDK for Android的新手.

private void onSessionStateChange(final Session session, SessionState sessionState, Exception ex){
    if(session != null && session.isOpened()){
        getUserData(session);
    }
}

private void getUserData(final Session session){
    Request request = Request.newMeRequest(session, 
        new Request.GraphUserCallback() {
        @Override
        public void onCompleted(GraphUser user, Response response) {
            if(user != null && session == Session.getActiveSession()){
                pictureView.setProfileId(user.getId());
                userName.setText(user.getName());
                getFriends();

            }
            if(response.getError() …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api facebook-android-sdk

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

移动android SDK安装文件夹

我在程序文件(x86)中安装了我的Android SDK.但由于某种原因,我想把它移到D:.我想问我是否可以在不改变我目前的日食项目的情况下做到这一点,我是否必须重新安装我的ADT插件?

提前致谢

android adt facebook-android-sdk

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

Facebook 3.0 Android第二次登录尝试返回"会话状态关闭"

我正在尝试将Facebook集成到我的Android应用程序中.使用Facebook登录按钮,我尝试登录.当我第一次安装应用程序时,它工作正常并成功登录.当我使用该按钮注销,然后再次尝试登录时,它会显示权限对话框,但SessionState返回状态已关闭.有什么建议?这是我的代码

    public class LoginActivity extends FragmentActivity{

    //  private Login login;
        private boolean isResumed = false;
        private BirthDayComp app;
        private int Login=0;
        private int LogOut=1;
    private int Count=LogOut+1;
    private boolean loged= false;
    private Fragment[] fragments = new Fragment[Count];
     private UiLifecycleHelper uiHelper;
        private Session.StatusCallback callback = new Session.StatusCallback() {
            @Override
            public void call(Session session, SessionState state, Exception exception) {
                onSessionStateChange(session, state, exception);
            }
        };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.login_fragment);
        uiHelper = new UiLifecycleHelper(this, callback);
            uiHelper.onCreate(savedInstanceState);

            FragmentManager fm …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api facebook-android-sdk android-facebook

25
推荐指数
1
解决办法
1262
查看次数

Facebook SDK 4.7.0记录AppEventsLogger的ClassNotFoundException

我通过Gradle在我的Android应用程序中集成了FB SDK,用于登录和跟踪事件.登录工作正常,但是一旦我尝试记录应用程序事件,logcat每15秒就会向我显示一个异常:

D/com.facebook.appevents.AppEventsLogger: Got unexpected exception: java.lang.ClassNotFoundException: com.facebook.a.b
Run Code Online (Sandbox Code Playgroud)

它会被PersistedEvents的readAndClearStore()方法抛出

这是我记录事件的代码:

AppEventsLogger logger = AppEventsLogger.newLogger(this);
    Bundle parameters = new Bundle();
    parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "EUR");
    parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
    parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, id);

    logger.logEvent(AppEventsConstants.EVENT_NAME_VIEWED_CONTENT,
            1.99,
            parameters);
Run Code Online (Sandbox Code Playgroud)

我的意思是com.facebook.a.b看起来像是一个问题.但是在FB SDK文档中,他们明确指出您不需要输入任何proguard规则来使其工作.当我不缩小我的应用程序时,如果我从github下载sdk并将其作为模块包含,此错误也会显示.

android facebook facebook-android-sdk facebook-sdk-4.x

24
推荐指数
1
解决办法
1083
查看次数

如何使用Facebook SDK android获取Facebook照片,全名,性别

我正在开发一个Android应用程序,其中任何使用我们的应用程序登录Facebook的Android用户,我需要从Facebook提取他的照片,他的性别,他的全名.我正在使用Facebook SDK.

在Facebook SDK的帮助下,我可以登录Facebook,但我不知道如何从Facebook中提取他的照片,性别和全名?

以下是我用于登录Facebook的代码.我按照本教程

public class SessionLoginFragment extends Fragment {

    private static final String URL_PREFIX_FRIENDS = "https://graph.facebook.com/me/friends?access_token=";

    private TextView textInstructionsOrLink;
    private Button buttonLoginLogout;
    private Session.StatusCallback statusCallback = new SessionStatusCallback();

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment, container, false);

    buttonLoginLogout = (Button) view.findViewById(R.id.buttonLoginLogout);
    textInstructionsOrLink = (TextView) view.findViewById(R.id.instructionsOrLink);

    Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);

    Session session = Session.getActiveSession();
    if (session == null) {
        if (savedInstanceState != null) {
        session = Session.restoreSession(getActivity(), null, statusCallback,
            savedInstanceState);
        }
        if (session == …
Run Code Online (Sandbox Code Playgroud)

java android facebook-graph-api facebook-android-sdk

23
推荐指数
3
解决办法
6万
查看次数

在requestNewReadPermissions然后requestNewPublishPermissions之后没有调用StatusCallback

我正在开发一个与Facebook集成的Android应用程序.我想要:

  1. 让用户使用Facebook登录
  2. 在Facebook上获取用户的电子邮件地址(可以是代理的电子邮件地址,这很好)
  3. 代表他/她发布到用户的墙/时间线

从技术上讲,这将是:

  1. 验证用户
  2. 请求email许可
  3. 请求publish_stream许可

1.验证用户

我打电话Session.openActiveSession()Session.StatusCallback(我已经检查过事先没有活动的打开会话):

final Session.StatusCallback sessionStatusCallback = new Session.StatusCallback() {
    public void call(final Session session, SessionState state, Exception exception) {
        // If there is an exception...
        if(exception != null)
        {
            // Handle fail case here.
            return;
        }

        // If session is just opened...
        if(state == SessionState.OPENED)
        {
            // Handle success case here.
            return;
        }
    };
};

// Start Facebook Login.
Session.openActiveSession(activity, true, sessionStatusCallback); …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-authentication facebook-android-sdk

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

在facebook页面上分享抛出错误

当我在Facebook页面上分享时,收到以下错误:

(#100)只有URL的所有者才能指定图片,名称,缩略图或描述参数.

它在5-10天前工作正常.搜索时我在Facebook开发者网站链接上找到了以下内容:

"自2017年11月7日起,链接自定义可用,但链接必须由发布页面拥有,并且需要页面访问令牌.要验证所有权,请检查URL节点上的ownership_permissions {can_customize_link_posts}字段.请参阅我们的链接所有权有关详细信息的指南.对于版本2.10及更低版本,不推荐使用图片,名称,缩略图和说明.不建议使用所有版本的标题."

任何帮助,将不胜感激!

ShareLinkContent content = new ShareLinkContent.Builder()
            .setContentUrl(Uri.parse(shareUrl))
            .build();

new ShareApi(content).share(new FacebookCallback<Sharer.Result>() {

        @Override
        public void onSuccess(Sharer.Result result) {
            shareCallback.onSuccess(result);
        }

        @Override
        public void onCancel() {
            shareCallback.onCancel();
        }

        @Override
        public void onError(FacebookException error) {
            shareCallback.onError(error);
        }
    });
Run Code Online (Sandbox Code Playgroud)

android facebook-sharer facebook-android-sdk android-facebook

21
推荐指数
2
解决办法
486
查看次数

防止来自Facebook Android SDK的网络请求

即使尚未使用任何SDK,Android Facebook SDK也始终graph.facebook.com在调用时发出网络请求FacebookSdk.sdkInitialize(context).

因此,如果我们在初始化它,Application.onCreate()那么总会有至少一个网络请求.即使设置如下:

 <meta-data
    android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
    android:value="false" />
Run Code Online (Sandbox Code Playgroud)

我们仔细研究了这一点,因为用户抱怨他没有使用Facebook登录(这就是我们首先拥有Facebook SDK的原因)并且仍有"用户数据"转移到Facebook.在GDPR和可疑用户时代,这是一种非常不利的行为!

我们现在正在做的是FacebookSdk.sdkInitialize(context)仅在用户想要使用Facebook登录时(在用户点击按钮时)进行呼叫.此外,我们删除了meta-dataandroid:name="com.facebook.sdk.ApplicationId"AndroidManifest.这可以防止初始网络请求,但随后出现以下崩溃CurrentAccessTokenExpirationBroadcastReceiver:

java.lang.RuntimeException: Unable to start receiver com.facebook.CurrentAccessTokenExpirationBroadcastReceiver: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
at com.facebook.internal.Validate.sdkInitialized(Validate.java:143)
    at com.facebook.FacebookSdk.getApplicationContext(FacebookSdk.java:518)
    at com.facebook.AccessTokenManager.getInstance(AccessTokenManager.java:86)
    at com.facebook.CurrentAccessTokenExpirationBroadcastReceiver.onReceive(CurrentAccessTokenExpirationBroadcastReceiver.java:34)
Run Code Online (Sandbox Code Playgroud)

现在有几个问题:

  1. Facebook为什么还在开始时提出请求?如果他们想要验证身份验证令牌,他们可以在真正使用SDK时立即执行此操作...

  2. Facebook是否知道并容忍崩溃sdkInitialize()未被调用?因为我担心当它NullPointerException被删除时会有其他崩溃......

  3. 最重要的是:当没有使用其功能时,还有其他方法可以阻止来自Facebook SDK的网络请求吗?

android facebook facebook-android-sdk

21
推荐指数
1
解决办法
1112
查看次数