GVKun编程网logo

Facebook OAuth“此 URL 的域未包含在应用程序的域中”(此url无效是什么意思)

8

对于FacebookOAuth“此URL的域未包含在应用程序的域中”感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解此url无效是什么意思,并且为您提供关于Androidfacebook登录

对于Facebook OAuth“此 URL 的域未包含在应用程序的域中”感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解此url无效是什么意思,并且为您提供关于Android facebook登录无法使用已安装的Facebook应用程序、android – 使用Facebook应用程序打开Facebook Url、android – 在设备/模拟器上安装Facebook应用程序时,发布到用户Facebook墙不能正常工作、android – 如何在没有Facebook应用程序的情况下登录Facebook?的宝贵知识。

本文目录一览:

Facebook OAuth“此 URL 的域未包含在应用程序的域中”(此url无效是什么意思)

Facebook OAuth“此 URL 的域未包含在应用程序的域中”(此url无效是什么意思)

首先让我先说我已经寻找这个问题的答案很长一段时间了......

我正在尝试设置 Facebook OAuth 以使用在我的机器上本地开发的应用程序。一切都在 Facebook
授权下完美运行,直到我从使用localhost转移到另一个域名(仍然是我的机器本地)。现在我收到以下错误。

无法加载 URL:此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。

我的主机文件包含127.0.0.1 domain.dev (完美运行)

我在我的应用程序中的重定向(使用社交名流)是http://domain.dev/auth/facebook/callback

在我的 Facebook 应用设置…

  • 我的应用程序域是domain.dev
  • 我的网站网址是http://domain.dev/
  • 我的有效 OAuth 重定向 URI 是 http://domain.dev/auth/facebook/callback

出现错误消息时的 URL 是..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fdomain.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

我不知道问题是什么…

屏幕截图 1
截屏

屏幕截图 2
在此处输入图像描述

答案1

小编典典

如果您在 Facebook 创建应用程序时输入了错误的详细信息,通常会发生这种情况。或者您是否更改了现有应用程序的 URL?

你能在这个页面重新检查你的APP的设置吗?

https://developers.facebook.com/apps

  1. 选择正确的App并点击编辑按钮;

  2. 检查 URL 和路径是否正确输入并指向您安装 Ultimate Facebook 插件的站点。

Android facebook登录无法使用已安装的Facebook应用程序

Android facebook登录无法使用已安装的Facebook应用程序

我已经设置了简单的Facebook登录.对于 Android 2.3.6,所有功能都应该如此,用户获得提示登录对话框,输入数据和应用程序继续.我以为这是android版本的错误,但是当手机上安装了Facebook应用程序时,会发现登录不起作用!

测试了:
galaxy Ace 2.3.6
HTC Desire 4.1.2
银河笔记4.1.2
Android模拟器4.1.2

即使Facebook的样品也不工作!

每次应用执行时 – else {
Log.d(“SESSION NOT OPENED”,“SESSION NOT OPENED”);
}

似乎会话没有打开,但为什么呢?按照本指南 – https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

码:

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

        @Override
        public void call(final Session session,SessionState state,Exception exception) {

            if (session.isOpened()) {

                Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user,Response response) {
                        if (user != null) {
                            Log.d("Access_token",session.getAccesstoken());
                        }
                    }
                });
            } else {
                Log.d("SESSION NOT OPENED","SESSION NOT OPENED");
            }
        }
    });

解决方法

查看步骤4: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/的底部

如果您没有正确输入应用程序密钥哈希,Facebook通过WebView弹出窗口登录(如果该应用未安装)仍然可以正常工作,但是通过本机的Facebook应用程序登录将不会.

您应该在LogCat中看到这个异常:

com.facebook.http.protocol.ApiException: remote_app_id does not match stored id

Facebook SDK打印其例外,如果还有其他问题,请检查.

android – 使用Facebook应用程序打开Facebook Url

android – 使用Facebook应用程序打开Facebook Url

我想从我的 Android应用程序打开一个Facebook链接.
URL看起来像 http://www.facebbok.com/abcxyz.它应该在Facebook应用程序中打开’abcxyz’页面,但它总是在浏览器中打开.

码:

try 
{
    Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
    activityContext.startActivity(browserIntent);
} 
catch (ActivityNotFoundException ex) 
{
     ex.printstacktrace();
}

我的Android操作系统版本是6.0.1.

我和Instagram,http://www.instagram.com/abcxyz有同样的问题,而Youtube等其他应用程序也有问题.

解决方法

您应该使用Facebook的自定义网址方案强制应用打开您的页面,如下所示:
public Intent getFacebookIntent(String url) {

  PackageManager pm = context.getPackageManager();
  Uri uri = Uri.parse(url);

  try {
    ApplicationInfo applicationInfo = pm.getApplicationInfo("com.facebook.katana",0);
    if (applicationInfo.enabled) {
      uri = Uri.parse("fb://facewebmodal/f?href=" + url);
    }
  }  

  catch (PackageManager.NameNotFoundException ignored) {
  }

  return new Intent(Intent.ACTION_VIEW,uri);
}

android – 在设备/模拟器上安装Facebook应用程序时,发布到用户Facebook墙不能正常工作

android – 在设备/模拟器上安装Facebook应用程序时,发布到用户Facebook墙不能正常工作

我已经构建了一个使用 this实现的活动(请参阅接受的答案),在用户的Facebook墙上发布状态更新.

如果模拟器/手机没有安装Facebook应用程序,它没有问题.

如果模拟器/手机安装了Facebook应用程序,Facebook应用程序加载登录屏幕,但在尝试登录后,Facebook应用程序刚刚消失,将我带回我的应用程序.

安装Facebook应用程序时有没有人有这种体验?

我的代码:

public class AchievementActivity extends Activity implements DialogListener,OnClickListener{


private Facebook facebook;
Button facebookPostButton;
String defaultFacebookPost;

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

    requestwindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.achievements);
    getwindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title_layout);

    View achievementDivider = (View)findViewById(R.id.achievementDivider);
    int[] colors = {0,0xff00ffff,0};
    achievementDivider.setBackgroundDrawable(new GradientDrawable(Orientation.RIGHT_LEFT,colors));

    //get the title of the achievement from the intent that started this activity from the activity StatisticsActivity
    String achievementTitleString = getIntent().getStringExtra("title");

    String achievementTextTodisplay = getAchievementTextTodisplay(achievementTitleString);

    defaultFacebookPost = getDefaultPost(achievementTitleString);

    //ImageView achievementActivityAchievementBadgeImageView = (ImageView)findViewById(R.id.achievementActivityAchievementBadgeImageView);
    TextView achievementActivityBadgeTitleTextView = (TextView)findViewById(R.id.achievementActivityBadgeTitleTextView);
        achievementActivityBadgeTitleTextView.setText(achievementTitleString);

    TextView achievementActivityAchievementText = (TextView)findViewById(R.id.achievementActivityAchievementText);
        achievementActivityAchievementText.setText(achievementTextTodisplay);

    facebookPostButton = (Button)findViewById(R.id.facebookPostButton);
    facebookPostButton.setonClickListener(this);


}

@Override
public void onComplete(Bundle values) {

    if (values.isEmpty())
    {
        Toast.makeText(getApplicationContext(),"Empty",Toast.LENGTH_SHORT);

        return;
    }

    if (!values.containsKey("post_id"))
    {
        try
        {
            Bundle parameters = new Bundle();
            parameters.putString("message",defaultFacebookPost);// the message to post to the wall
            facebook.dialog(AchievementActivity.this,"stream.publish",parameters,this);// "stream.publish" is an API call
        }
        catch (Exception e)
        {
            // Todo: handle exception
                System.out.println(e.getMessage());
        }
    }

    try 
    {
        facebook.logout(getApplicationContext());
    } 
    catch (MalformedURLException e) 
    {
        // Todo Auto-generated catch block
        e.printstacktrace();
    } 
    catch (IOException e) 
    {
        // Todo Auto-generated catch block
        e.printstacktrace();
    }
}

@Override
public void onFacebookError(FacebookError error) 
{
    Toast.makeText(AchievementActivity.this,"onFacebookError",Toast.LENGTH_LONG); 
}

@Override
public void onError(DialogError e) 
{
    Toast.makeText(AchievementActivity.this,"onError",Toast.LENGTH_LONG); 
}

@Override
public void onCancel() 
{
    Toast.makeText(AchievementActivity.this,"onCancel",Toast.LENGTH_LONG);
}

@Override
public void onClick(View v)
{
    if (v == facebookPostButton)
    {
        facebook = new Facebook("my_facebook_api");
        // replace APP_API_ID with your own
        facebook.authorize(this,new String[] {"publish_stream","read_stream","offline_access"},this); 
    }
}

private String getDefaultPost(String defaultTitleString) 
{
    //do some stuff here to get a string to post to wall

    return defaultPost;
}

private String getAchievementTextTodisplay(String achievementTitleString) {
    String achievementTextTodisplay = "DEFAULT";

    //do some stuff here to get text to display in the activity
            //this has nothing to do with the facebook post...

    return achievementTextTodisplay;
}

}

Logcat告诉我这个:

05-11 13:03:34.076: INFO/ActivityManager(98): Starting activity: Intent { cmp=com.facebook.katana/.ProxyAuth (has extras) }
05-11 13:03:34.246: INFO/ActivityManager(98): displayed activity com.facebook.katana/.ProxyAuth: 158 ms (total 158 ms)
05-11 13:03:35.166: DEBUG/dalvikvm(12390): GC_FOR_MALLOC freed 6729 objects / 418424 bytes in 44ms
05-11 13:03:35.166: DEBUG/webviewglue(12390): nativeDestroy view: 0x527e20
05-11 13:03:35.166: DEBUG/NativeCrypto(12390): Freeing OpenSSL session

编辑
:在过去一年中必须在多台机器上安装Android开发平台并且在创建新的开发环境后总是遇到Facebook的问题,我发现这个简单的答案可能是Facebook实现在一个设备上工作的原因不是另一个……

秘密的Facebook API密钥(您在developer.facebook.com上列出的密钥)对于您使用不同证书打包的每个版本的应用程序都会有所不同.例如,假设您有两台开发机器.由于这两台计算机都将使用不同的证书构建您的应用程序,因此您必须确保为每台计算机生成一个Facebook API密钥,并将它们列在developer.facebook.com上.

解决方法

这是因为当您登录Facebook帐户时,您的登录会话将在设备中创建.完成任务后,您必须从Facebook注销.

android – 如何在没有Facebook应用程序的情况下登录Facebook?

android – 如何在没有Facebook应用程序的情况下登录Facebook?

我使用Facebook示例应用程序(SessionLoginSample)来了解如何登录Facebook.我的Facebook SDK是最新的 – version 3.0.当我安装了Facebook应用程序时,我可以毫无问题地登录.

问题是当我卸载我的Facebook应用程序并重新安装示例时(因此它不会自动登录).我尝试登录,但我只能看到一个白色的空对话框.我唯一的选择是关闭它.即使我等待10-15分钟,对话框也不会改变.

我试图调试Facebook SDK,但我找不到导致错误的原因.

我在LG-E610(4.0.3)和HTC Sensation(4.0.3)上进行了测试.

这是facebook sdk错误还是我做错了什么?

编辑:我在10天后再次在相同的编码中测试了这个问题,一切似乎都按预期工作.

解决方法

问题可能不在你身边!我遇到过这样一种情况:根据我的IP(确切地说是IP /用户代理),对Facebook的同一个请求将按预期得到回答或“内部服务器错误500”.

在以下情况下,您可以确定配置和应用程序没有任何问题:

>您的应用程序适用于其他网络(即另一个IP)
>来自Facebook的示例应用程序(即HelloFacebookSample)遇到同样的问题.

>对于Android,请参阅:http://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/
>对于iOS,请参阅:http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/

我怀疑Facebook将某些IP /用户代理组合放在一个临时黑名单中.问题是他们的通用500响应没有帮助.

对于另一个报道的案例,请在Internal Server 500 from Facebook with sepcific IP/user-agent combination查看我的问题

我们今天的关于Facebook OAuth“此 URL 的域未包含在应用程序的域中”此url无效是什么意思的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android facebook登录无法使用已安装的Facebook应用程序、android – 使用Facebook应用程序打开Facebook Url、android – 在设备/模拟器上安装Facebook应用程序时,发布到用户Facebook墙不能正常工作、android – 如何在没有Facebook应用程序的情况下登录Facebook?的相关信息,请在本站查询。

本文标签: