【问题标题】:Can't create a Facebook app : Missing App Integration无法创建 Facebook 应用:缺少应用集成
【发布时间】:2012-07-16 11:12:40
【问题描述】:

我无法创建 Facebook 应用程序。我们制作了一款 Android 游戏,当用户触摸 Facebook 徽标时,它会在用户的墙上发布一条消息,作为回报,我们会授予他优质的东西。

但是 我无法创建 FaceBookApp

在管理员模式下,当我进入“应用中心”时,有一个红色方块,里面有这条消息:

[

缺少应用集成。

在设置您的应用详情页面之前,您必须指定您的应用如何与 Facebook 集成。点击此处查看您的应用设置页面以管理您的集成

]

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

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

对于我选择的选项:

  1. 单点登录 [已禁用]
  2. 深度链接 [已禁用]
  3. Android 密钥哈希 = 我把正确的放在适当的位置
  4. Android 包名 = ""
  5. Android 类名 = ""

在此页面上,如果我点击“确认”,它会告诉我“好的,一切顺利”,但是当我返回 App Center 时,仍然有红色方块告诉我需要指定我的应用如何与 Facebook 集成 :(

谁能帮我解决这个问题?

非常感谢你!

【问题讨论】:

    标签: android facebook integration


    【解决方案1】:

    不一定要在 facebook 应用中心创建一个应用来在墙上(或等)发布消息。我也在创建一个支持 facebook 的游戏,它正在发布带有链接和标题的照片,但游戏没有针对同一问题添加到 facebook 应用中心。

    首先,我在https://developers.facebook.com/apps 上创建了一个应用程序,我们应该记住 AppId(API KEY),而不是为 Android 标签启用应用程序并输入哈希码。使用命令keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 由您的密钥库生成哈希码,其中“androiddebugkey”是您的密钥名称(用于导出),“~/.android/debug.keystore”是您的密钥库(用于导出 ofc)。

    我的班级正在发照片

    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);
            }
            }
    

    【讨论】:

    • 你至少应该指定如何然后你是这样做的,或者发布一个链接到文档的正确部分。
    • 我必须补充一点,我们使用的是用于 Android 的 prime31 插件:“社交网络”。在他们的doc 中,它写道“Facebook 要求您创建一个密钥哈希并将其存储在他们的服务器上,以便他们可以验证您的应用程序”
    【解决方案2】:

    打开“为 Android SSO 配置”选项。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多