Android 应用程序无法连接到服务器

发布于 2024-12-29 05:14:55 字数 2871 浏览 1 评论 0原文

我的 Android 应用程序曾经能够通过 API 连接到 Facebook 服务器,但现在由于某种原因无法连接。我不断在我的日志中收到此消息 cat

D/Facebook-authorize(417): Login failed: com.facebook.android.DialogError: The connection to the server was failed.

我读过很多与此相关的堆栈溢出问题,但没有答案。我希望有人能帮助我解决这个问题。谢谢你!

这是我的一些代码,其中我的应用程序 ID 已被编辑掉

public class BreadcrumbsActivity extends Activity {

static Facebook facebook = new Facebook("*************");
String FILENAME = "AndroidSSO_data";
static SharedPreferences mPrefs;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    /*
     * Get existing access_token if any
     */
    mPrefs = getPreferences(MODE_PRIVATE);
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);
    if(access_token != null) {
        facebook.setAccessToken(access_token);
    }
    if(expires != 0) {
        facebook.setAccessExpires(expires);           
    }

    /*
     * Only call authorize if the access_token has expired.
     */
    if(!facebook.isSessionValid()) {

        facebook.authorize(this, new String[] {"user_likes", "user_photos", "email", "offline_access", "publish_actions"}, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {
                SharedPreferences.Editor editor = mPrefs.edit();
                editor.putString("access_token", facebook.getAccessToken());
                editor.putLong("access_expires", facebook.getAccessExpires());
                editor.commit();

                Toast.makeText(getApplicationContext(),
                        "Login Succesful.",
                        Toast.LENGTH_LONG).show();

                Intent intent = new Intent(BreadcrumbsActivity.this, MainMenu.class);                   
                BreadcrumbsActivity.this.startActivity(intent);
            }

            @Override
            public void onFacebookError(FacebookError error) {
                Toast.makeText(getApplicationContext(),
                        "Login Failed.",
                        Toast.LENGTH_LONG).show();

                Intent intent = new Intent(BreadcrumbsActivity.this, MainMenu.class);                   
                BreadcrumbsActivity.this.startActivity(intent);
            }

            @Override
            public void onError(DialogError e) {}

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


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

    facebook.authorizeCallback(requestCode, resultCode, data);
}

}

My android application used to be able to connect to the Facebook server via the API, but now it won't for some reason. I keep on getting this message in my log cat

D/Facebook-authorize(417): Login failed: com.facebook.android.DialogError: The connection to the server was unsuccessful.

Ive read many stack overflow questions regarding this, without answer. I am hoping someone can help me with this. Thank you!

Here is some of my code with my App ID edited out

public class BreadcrumbsActivity extends Activity {

static Facebook facebook = new Facebook("*************");
String FILENAME = "AndroidSSO_data";
static SharedPreferences mPrefs;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    /*
     * Get existing access_token if any
     */
    mPrefs = getPreferences(MODE_PRIVATE);
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);
    if(access_token != null) {
        facebook.setAccessToken(access_token);
    }
    if(expires != 0) {
        facebook.setAccessExpires(expires);           
    }

    /*
     * Only call authorize if the access_token has expired.
     */
    if(!facebook.isSessionValid()) {

        facebook.authorize(this, new String[] {"user_likes", "user_photos", "email", "offline_access", "publish_actions"}, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {
                SharedPreferences.Editor editor = mPrefs.edit();
                editor.putString("access_token", facebook.getAccessToken());
                editor.putLong("access_expires", facebook.getAccessExpires());
                editor.commit();

                Toast.makeText(getApplicationContext(),
                        "Login Succesful.",
                        Toast.LENGTH_LONG).show();

                Intent intent = new Intent(BreadcrumbsActivity.this, MainMenu.class);                   
                BreadcrumbsActivity.this.startActivity(intent);
            }

            @Override
            public void onFacebookError(FacebookError error) {
                Toast.makeText(getApplicationContext(),
                        "Login Failed.",
                        Toast.LENGTH_LONG).show();

                Intent intent = new Intent(BreadcrumbsActivity.this, MainMenu.class);                   
                BreadcrumbsActivity.this.startActivity(intent);
            }

            @Override
            public void onError(DialogError e) {}

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


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

    facebook.authorizeCallback(requestCode, resultCode, data);
}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

写下不归期 2025-01-05 05:14:55

错误 - 417 期望失败

417状态码表示服务器无法正常
完成请求。发送到服务器的标头之一,
“Expect”标头,表示服务器无法满足的期望。

Error- 417 Expectation Failed

The 417 status code means that the server was unable to properly
complete the request. One of the headers sent to the server, the
"Expect" header, indicated an expectation the server could not meet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文