无法创建Facebook应用程序:缺少应用程序集成

时间:2012-07-17 13:57:24

标签: android facebook integration

我在创建FacebookApp时遇到了麻烦。我们制作了一款Android游戏,当用户触摸Facebook徽标时,它会在用户的墙上发布一条消息,并在返回时向我授予优质内容。

我无法创建FaceBookApp

在管理员模式下,当我到达“App Center”时,会出现一个红色方块,其中包含此消息:

[

缺少应用集成。

在设置应用详细信息页面之前,您必须指定应用与Facebook的集成方式。点击此处查看您的应用设置页面以管理您的集成

如果我点击该链接,它会将我带到您选择如何将您的应用程序集成到Facebook的位置。

我只选择了 “原生Android应用”

以及我选择的选项:

  1. 单点登录[已禁用]
  2. 深层链接[已停用]
  3. Android密钥哈希=我把正确的密钥哈希
  4. Android Package name =“”
  5. Android类名=“”
  6. 在此页面上,如果我点击“确认”,它会告诉我“好的,它进展顺利”但是当我回到App Center时仍然有红色方块告诉我需要指定我的应用程序如何与Facebook集成:(

    有人可以帮我这个吗?

    你好多了!

2 个答案:

答案 0 :(得分:1)

不一定要在Facebook应用中心创建一个应用程序,用于在墙上(或等)发布消息。我也正在创建一个支持facebook的游戏,它会发布带有链接和标题的照片,但游戏不会添加到Facebook应用中心以解决同样的问题。

首先,我在https://developers.facebook.com/apps上创建了一个应用程序,我们应该记住AppId(API KEY),而不是启用Android应用程序选项卡并输入Hashcode。使用命令keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64对密钥库进行密码编码,其中“androiddebugkey”是密钥的名称(用于导出),“〜/ .android / debug.keystore”是密钥库(用于导出c)。

我的班级正在张贴照片

public class EveryBodyActivity extends Activity {

    public final String API_KEY = "YOUR API KEY HERE";
    public final String[] permissions = {"publish_stream"};
    Facebook facebook = new Facebook(API_KEY);

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ImageButton imageButton = (ImageButton)findViewById(R.id.button);
        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                authorizeAndPostMassage();
            }
        });
    }

    public void authorizeAndPostMassage() {
        facebook.authorize(this, permissions, Facebook.FORCE_DIALOG_AUTH, new DialogListener () {
            @Override
            public void onComplete(Bundle values) {
                    Toast.makeText(EveryBodyActivity.this, "Authorization successful", Toast.LENGTH_SHORT).show();
                    postMassage();
            }

            @Override
            public void onFacebookError(FacebookError e) {
                Toast.makeText(EveryBodyActivity.this, "Facebook error, try again later", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(DialogError e) {
                Toast.makeText(EveryBodyActivity.this, "Error, try again later", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancel() {
                //Этот коллбэк никогда не срабатывает, вероятно, ошибка в SDK
                Toast.makeText(EveryBodyActivity.this, "Authorization canceled", Toast.LENGTH_SHORT).show();
            }});
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        facebook.authorizeCallback(requestCode, resultCode, data);
    }


    private void postMassage() {
        Bundle imageBundle = new Bundle();
        imageBundle.putString(Facebook.TOKEN, facebook.getAccessToken());
        imageBundle.putString("method", "photos.upload");
        imageBundle.putString("caption", "New Voodoo Doll");

        byte[] data = null;

         Bitmap bi = BitmapFactory.decodeResource(getResources(),
                R.drawable.ic_launcher);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        data = baos.toByteArray();
        imageBundle.putByteArray("picture", data);
        Toast.makeText(EveryBodyActivity.this, "Sending VooDoo...", Toast.LENGTH_SHORT).show();
        try {

            facebook.request(null, imageBundle, "POST");

        } catch (FileNotFoundException fileNotFoundException) {
            Toast.makeText(getApplicationContext(), (fileNotFoundException.getMessage()), 100);
        } catch (MalformedURLException malformedURLException) {
            Toast.makeText(getApplicationContext(), (malformedURLException.getMessage()), 100);

        } catch (IOException ioException) {
            Toast.makeText(getApplicationContext(), (ioException.getMessage()), 100);
        }
        }

答案 1 :(得分:0)

启用“为Android SSO配置”选项。

https://developers.facebook.com/bugs/270177039756846/