标签: facebook-android-sdk

Openssl不被视为内部或外部命令

我希望为我的应用程序生成一个应用程序签名,稍后将与Facebook集成.在Facebook的一个教程中,我发现了这个命令:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

在本教程中,它表示通过运行此cmd,我的生成签名的过程将开始.

但是,此命令会出错:

openssl is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)

我怎么能摆脱这个?

java android keytool facebook-android-sdk

169
推荐指数
8
解决办法
15万
查看次数

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万
查看次数

在Android工作室使用facebook sdk

我正在使用Android Studio关注Facebook SDK for Android.当我运行我的应用程序时,我收到了下面提到的警告.

Gradle: module 'facebook' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-Gradle module in one project.
Run Code Online (Sandbox Code Playgroud)

我该怎么解决这个问题?

我尝试了@Scott Barta的回答,并收到以下错误消息.

    A problem occurred configuring project ':App'.
> Failed to notify project evaluation listener.
   > A problem occurred configuring project ':libraries:facebook'.
      > Failed to notify project evaluation listener.
         > Could not resolve all dependencies for configuration ':libraries:facebook:_DebugCompile'.
            > Could not find any version that matches com.android.support:support-v4:+.
              Required by:
                  MyApplication2.libraries:facebook:unspecified
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-android-sdk android-studio android-gradle-plugin

104
推荐指数
5
解决办法
15万
查看次数

FacebookSdk.sdkInitialize(Context)已弃用

我在Android Studio中使用facebook-android-sdk-4.19.0,然后按照Facebook快速入门指南访问https://developers.facebook.com/docs/android/getting-started(点击"快速启动"按钮使用您自己的Facebook帐户登录).在指南中,它被告知要在代码段中复制并粘贴以下代码以跟踪应用日志

import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我在android studio中复制粘贴代码时,似乎不推荐使用所有的FacebookSdk.sdkInitialize()方法.这里的文档https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/没有说明使用什么方法来初始化sdk而不是sdkInitialize().我应该使用什么方法?

android facebook deprecated facebook-android-sdk

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

如何以编程方式从Facebook SDK 3.0注销而不使用Facebook登录/注销按钮?

标题说明了一切.我正在使用自定义按钮来获取用户的Facebook信息(用于"注册"目的).然而,我不希望应用程序记住最后一个注册用户,也不想通过Facebook本机应用程序当前登录的用户.我希望每次都能弹出Facebook登录活动.这就是为什么我想以编程方式注销任何以前的用户.

我怎样才能做到这一点?这是我登录的方式:

private void signInWithFacebook() {

    SessionTracker sessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() 
    {
        @Override
        public void call(Session session, SessionState state, Exception exception) { 
        }
    }, null, false);

    String applicationId = Utility.getMetadataApplicationId(getBaseContext());
    mCurrentSession = sessionTracker.getSession();

    if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
        sessionTracker.setSession(null);
        Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build();
        Session.setActiveSession(session);
        mCurrentSession = session;
    }

    if (!mCurrentSession.isOpened()) {
        Session.OpenRequest openRequest = null;
        openRequest = new Session.OpenRequest(RegisterActivity.this);

        if (openRequest != null) {
            openRequest.setPermissions(null);
            openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);

            mCurrentSession.openForRead(openRequest);
        }
    }else {
        Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() {
              @Override …
Run Code Online (Sandbox Code Playgroud)

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

78
推荐指数
6
解决办法
11万
查看次数

Facebook密钥哈希与任何存储的密钥哈希都不匹配

我真的遇到了Facebook哈希密钥问题.我在Eclipse中生成它..证明:

然后我去了https://developers.facebook.com/并注册了一个新的应用程序.

最后我将我的hashkey设置为Facebook开发人员的设置:

但不管我做什么我一直得到相同的错误日志:"密钥哈希B5dWUEYfZJL/........... jyA =与任何存储的密钥哈希值不匹配"

有人知道我做错了什么或如何解决这个问题?如果我在自己的应用程序中使用HelloFacebookSample中的id和名称,一切正常.所以它与我最有可能设置的密钥哈希,id或名称有关.

谢谢,Yenthe

android facebook facebook-sharer facebook-android-sdk

59
推荐指数
15
解决办法
11万
查看次数

Android Gradle构建子项目

我目前正在将我们的一个项目从maven转换为Gradle.文件夹结构如下:

gitRoot
    settings.gradle
    build.gradle
    ProjectA
        build.gradle
        src/main/java
    Libraries
        SomeLib (git submodule)
        ProjectBRoot (git submodule)
            settings.gradle
            build.gradle
            ProjectB
                build.gradle
                src/main/java
            Libraries
                FacebookSDK/facebook
                    build.gradle
                    src
Run Code Online (Sandbox Code Playgroud)

所以看起来已经很复杂了.但是这个想法是ProjectB是一个图书馆项目,它应该能够单独构建和打包,这就是为什么它有自己的settings.gradle,据我所知它似乎工作正常,我有它建设并且它发现facebook就好了.

ProjectB/build.gradle包含此行

compile project(':libraries:facebook-android-sdk:facebook')
Run Code Online (Sandbox Code Playgroud)

ProjectBRoot/settings.gradle包含此行

include ':ProjectB', ':libraries:facebook-android-sdk:facebook'
Run Code Online (Sandbox Code Playgroud)

gitRoot/settings.gradle包含此行

include ':ProjectA', ':Libraries:ProjectBRoot:ProjectB'
Run Code Online (Sandbox Code Playgroud)

ProjectA/build.gradle包含此行

compile project(':Libraries:ProjectBRoot:ProjectB')
Run Code Online (Sandbox Code Playgroud)

当我运行构建时,我收到此错误

The TaskContainer.add() method has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the create() method instead.

FAILURE: Build failed with an exception.

* Where:
Build file '/gitRoot/Libraries/ProjectBRoot/ProjectB/build.gradle' line: 17

* What went wrong:
A problem occurred …
Run Code Online (Sandbox Code Playgroud)

android gradle facebook-android-sdk

54
推荐指数
2
解决办法
7万
查看次数

Facebook SDK 3 EOFException

我正在使用新的FaceBook SDK 3.0.在将图片从URL发布到"我/照片"时,我间歇性地获得了一个EOFException.我偶尔会遇到这个错误(约20次中有1次).

我还必须在获得之后添加,EOFException如果我再次重新发布,它会成功发布.

所以,暂时我编码自动重试一次,如果我得到EOFException解决方案似乎令人满意.

但是我需要知道导致它的原因,这是Android SDK中的一个错误.我用Google搜索了很多但却无法得到任何东西.

我发布了日志(出于安全原因删除了我的访问令牌和图片网址)

06-05 15:09:42.585: D/FacebookSDK.Request(16611): Request:
06-05 15:09:42.585: D/FacebookSDK.Request(16611):   Id: 9
06-05 15:09:42.585: D/FacebookSDK.Request(16611):   URL:https://graph.facebook.com/me/photos?caption=abc&format=json&sdk=android&migration_bundle=fbsdk%3A20121026&access_token=ADBCEFG&url=http%3A%2F%2Ftest.test.test%2Ftest%2Ftest%2F201695%2Ftest%2F18629
06-05 15:09:42.585: D/FacebookSDK.Request(16611):   Method: POST
06-05 15:09:42.585: D/FacebookSDK.Request(16611):   User-Agent: FBAndroidSDK.3.0.0
06-05 15:09:42.585: D/FacebookSDK.Request(16611):   Content-Type:   multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f
06-05 15:09:42.585: D/FacebookSDK.Request(16611):   Parameters:
06-05 15:09:42.585: D/FacebookSDK.Request(16611):       caption:    abc
06-05 15:09:42.585: D/FacebookSDK.Request(16611):       format: json
06-05 15:09:42.585: D/FacebookSDK.Request(16611):       sdk:    android
06-05 15:09:42.585: D/FacebookSDK.Request(16611):       migration_bundle:   fbsdk:20121026
06-05 15:09:42.585: D/FacebookSDK.Request(16611):       access_token:   ABCDEF
06-05 15:09:42.585: D/FacebookSDK.Request(16611):       url:    http://test.test.test/test/test/201695/test/18629
06-05 15:09:42.585: D/FacebookSDK.Request(16611): …
Run Code Online (Sandbox Code Playgroud)

android eofexception facebook-android-sdk

51
推荐指数
1
解决办法
1480
查看次数

Facebook身份验证没有登录按钮

我已经学习了一些Facebook API 3.0教程,包括Login/Logout和Publish To Feed示例.所以登录以这种方式工作:

  1. 应用程序打开,显示一个显示登录按钮的片段
  2. 用户单击登录,通过引用的FacebookSDK库(com.facebook.widget.LoginActivity)和使用会话提供的代码完成身份验证.
  3. 用户被重定向到下一个屏幕

我不想让用户以这种方式登录.我希望他们在没有任何登录/注册的情况下使用我的应用程序,然后如果他们点击Facebook特定功能,例如在Facebook上分享笔记,那么应用程序应该询问他们是否让Facebook使用他们的应用程序或其他东西,你知道通常的东西.如果没有这个,我会在publishFeedDialog()函数中得到一个nullpointer,因为session是null,因为没有登录.

所以我的问题是,如何通过"登录"按钮忽略SplashFragment,因此当用户点击我的应用程序中的Facebook功能时,不会显示带有登录按钮的新屏幕,而只显示用户使用的默认Facebook身份验证窗口至?

android facebook facebook-android-sdk

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

如何解决Facebook工具:replace ="android:theme"?

我有

compile 'com.facebook.android:facebook-android-sdk:4.16.0'
Run Code Online (Sandbox Code Playgroud)

我的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
...
    <application
            android:name=".YandexProvider"
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AutoTheme"
            tools:replace="android:theme">
Run Code Online (Sandbox Code Playgroud)

如何解决编译错误:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute activity#com.facebook.FacebookActivity@theme value=(@android:style/Theme.Translucent.NoTitleBar) from AndroidManifest.xml:69:13-72
    is also present at [com.facebook.android:facebook-android-sdk:4.16.0] AndroidManifest.xml:32:13-63 value=(@style/com_facebook_activity_theme).
    Suggestion: add 'tools:replace="android:theme"' to <activity> element at AndroidManifest.xml:66:9-70:47 to override.
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-android-sdk

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