警告:我删除了很多"旧文本"以使问题更加清晰.如果需要,只需查看历史记录.
我正在使用proguard缩小和混淆使用facebook sdk 3.0的应用程序(我正在使用sdk-version-3.0.2.b标记).我没有使用JAR文件.相反,我按照文档中的说明在我的工作区中导入了sdk .
在执行的某个时刻,应用程序加载PlacePickerFragment以让用户选择他所在的位置.为了编写代码,我完全遵循了美味的教程.当我生成调试apk而不使用proguard一切按预期工作.但是当我使用生成签名的apk时proguard,它会在PlacePickerFragment使用以下跟踪加载附近的地方时崩溃:
E/AndroidRuntime(27472): FATAL EXCEPTION: main
E/AndroidRuntime(27472): com.facebook.FacebookGraphObjectException: can't infer generic type of: interface com.facebook.model.GraphObjectList
E/AndroidRuntime(27472): at com.facebook.model.GraphObject$Factory.coerceValueToExpectedType(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.model.GraphObject$Factory$GraphObjectProxy.proxyGraphObjectGettersAndSetters(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.model.GraphObject$Factory$GraphObjectProxy.invoke(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.widget.$Proxy2.getData(Native Method)
E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader.addResults(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader.requestCompleted(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader.access$1(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader$2.onCompleted(Unknown Source)
E/AndroidRuntime(27472): at com.facebook.Request$4.run(Unknown Source)
E/AndroidRuntime(27472): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(27472): at android.os.Handler.dispatchMessage(Handler.java:92) …Run Code Online (Sandbox Code Playgroud) 我一直在通过Facebook最新的SDK即3.0进行一些登录项目.我在获取用户访问令牌方面遇到了困难.我在互联网上搜索了所有,最大的结果是使用了旧的SDK.以下是我从Facebook Android SDK教程中获取的一些代码:
public class LoginActivity extends Activity implements OnClickListener {
Button login;
TextView accessToken;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
login = (Button) findViewById(R.id.login);
accessToken = (TextView) findViewById(R.id.accessToken);
login.setOnClickListener(this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
}
@Override
public void onClick(View v) {
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState …Run Code Online (Sandbox Code Playgroud) 与Facebook Android SDK 3.0相关的问题类似于...
是否可以在SDK 3.5中使用我自己的图像作为Facebook登录按钮,而无需自定义SDK本身?
使用链接问题中给出的答案:
<com.facebook.widget.LoginButton
xmlns:fb="http://schemas.android.com/apk/res-auto"
android:id="@+id/login_button"
android:layout_width="249dp"
android:layout_height="45dp"
android:layout_above="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="30dp"
android:layout_marginTop="30dp"
android:contentDescription="@string/login_desc"
android:scaleType="centerInside"
fb:login_text=""
fb:logout_text="" />
Run Code Online (Sandbox Code Playgroud)
和:
final LoginButton button = (LoginButton) findViewById(R.id.login_button);
button.setBackgroundResource(R.drawable.facebook);
Run Code Online (Sandbox Code Playgroud)
我看到两个带有新SDK的图像.我的图像(R.drawable.facebook)是一个带有白色"f"的大灰色背景.但是,我也看到小白色背景和透明的"f"来自覆盖在背景顶部的原始facebook按钮图标.查看与SDK 3.5登录按钮相关的facebook文档.我想完全删除原来的facebook图标.
我想我挖了整个facebook sdk文档,但似乎无法找到获取用户电话号码或地址的方法.此功能是否已删除,如本主题所述,建议在几周内(2011年)重新启用此功能.
编辑:Anwser在这篇文章的最后.
由于内置的Facebook SDK功能,我试图获得Facebook用户的个人资料图片Request().
我正在使用/me/picture调用来获取个人资料图片并将其转换为Bitmap.
该调用工作正常,但我不知道如何解释和解析从Facebook返回的结果
这是JSON我得到的:
{"FACEBOOK_NON_JSON_RESULT":" \u0000\u0010JFIF\u0000\u0001\u0002\u0000\u0000\u0001\u0000\u0001\u0000\u0000\u0000\u0000\u0004*\u0000\\ u0000C\u0000\u0000\u0006\u0004\u0006\u0005\u0004\u0006\u0006\u0005\u0006\u0007\u0007\u0006\b"}
我认为这应该代表个人资料图片,但我现在不知道如何处理这个问题.
如果有人能告诉我如何解码它,将其转换为Bitmap或它是什么样的数据,我将不胜感激.
注意:我不想使用除Request()之外的任何其他函数,如DecodeStream()或AsyncTask
这是答案:
制作新内容时,Request()您需要将"redirect"参数添加到false:
Bundle params = new Bundle();
params.putBoolean("redirect", false);
Run Code Online (Sandbox Code Playgroud)
这将返回正确的图片网址:
{
"data":{
"is_silhouette":false,
"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xpa1\/v\/t1.0-1\/p100x100\/10312434_10152395442477210_2933994167675146084_n.jpg?oh=f3c8cb920c97fcfa4dc5e17462445cbf&oe=54404A3A&__gda__=1412730795_5f288e34e5f6e63cb1c3791dcb142880"
}
}
Run Code Online (Sandbox Code Playgroud) android json facebook facebook-graph-api facebook-android-sdk
我看了整个互联网,似乎无法找到我正在寻找...
我只是想找到一个网站,上面有一些关于如何使用OFFICIAL facebook android SDK的例子http://github.com/facebook/facebook-android-sdk
具体来说,我想看一些关于通知使用和简单照片上传的例子.但我会采取任何措施来帮助您了解使用SDK.
如果有人知道任何例子,请分享非常感谢!
我正在阅读facebook Android API 3.0文档,我不明白会话与后台活动有什么关系.在所有的例子中,我都应该扩展"FacebookFragment".好吧,如果我的整个应用程序没有扩展"SherlockFragment",那将是很好的,所以我不认为扩展FacebookFragment是一个选项.
如果我使用SessionLoginExample中的代码,并将我的AppID放在Strings中与facebook完全相同的字符串中,我得到:
错误
10-22 17:04:26.464: E/AndroidRuntime(5491): FATAL EXCEPTION: main
10-22 17:04:26.464: E/AndroidRuntime(5491): java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.specsavers.moodspecs/nl.specsavers.moodspecs.LauncherActivity}: java.lang.NullPointerException: Argument applicationId cannot be null
Run Code Online (Sandbox Code Playgroud)
我正在尝试设置初始检查是否安装了应用程序,以及会话是否存在.
Settings.addLoggingBehavior(LoggingBehaviors.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if (session == null) {
if (savedInstanceState != null) {
session = Session.restoreSession(this, null, statusCallback, savedInstanceState);
}
if (session == null) {
session = new Session(this);
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
}
}
Run Code Online (Sandbox Code Playgroud)
我需要能够以某种方式将我的App ID放在某个实际上可以正常的地方,但我找不到放在哪里.
我需要知道如果我使用SherlockFragment可以避免扩展FacebookFragment.
TNX.
我关注Facebook SDK 3.0 for Android的问题.我想在不使用他们的ProfilePictureView小部件的情况下获取我的(和我的朋友)个人资料图片,所以如果我使用Graph Explorer,我会看到Json响应是:
{
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/372127_1377011138_1538716206_q.jpg",
"is_silhouette": false
}
}
Run Code Online (Sandbox Code Playgroud)
我需要"url"路径下载并显示图片,但使用以下代码:
Request.executeGraphPathRequestAsync(Session.getActiveSession(),
"me/picture",
new Request.Callback() {
@Override
public void onCompleted(Response response) {
GraphObject go = response.getGraphObject();
Log.i("APP_NAME", go.toString());
}
});
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
GraphObject{graphObjectClass=GraphObject,
state={"FACEBOOK_NON_JSON_RESULT":"????\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001\u0000\u0001\u0000\u0000??\u0000"}}
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?谢谢
Cromir
我使用3.0文档中的步骤构建了Facebook集成.当我使用Eclispe将应用程序部署到手机时,它可以正常工作; 但是,当我导出应用程序将其上传到商店并侧面加载apk时,它会失败,并显示以下错误.当我导出它时,SDK就在那里并加载了.关于我哪里出错的任何线索?
03-18 21:01:02.089: E/AndroidRuntime(14834): FATAL EXCEPTION: main
03-18 21:01:02.089: E/AndroidRuntime(14834): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.telvista.facebooksupport/com.telvista.facebooksupport.SplashActivity}: android.view.InflateException: Binary XML file line #51: Error inflating class com.facebook.widget.LoginButton
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.app.ActivityThread.access$700(ActivityThread.java:139)
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.os.Looper.loop(Looper.java:137)
03-18 21:01:02.089: E/AndroidRuntime(14834): at android.app.ActivityThread.main(ActivityThread.java:4918)
03-18 21:01:02.089: E/AndroidRuntime(14834): at java.lang.reflect.Method.invokeNative(Native Method)
03-18 21:01:02.089: E/AndroidRuntime(14834): at java.lang.reflect.Method.invoke(Method.java:511)
03-18 21:01:02.089: E/AndroidRuntime(14834): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
03-18 21:01:02.089: …Run Code Online (Sandbox Code Playgroud) 我正在使用facebook SDK 3.0我必须获得用户登录的个人资料图片.这是我使用的代码:
URL image_value = new URL("http://graph.facebook.com/"+id+"/picture" );
profPict=BitmapFactory.decodeStream(image_value.openConnection().getInputStream());
Run Code Online (Sandbox Code Playgroud)
但我没有得到理想的结果.