• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android Facebook和Twitter分享

Android Facebook和Twitter分享

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了facebook twitter,facebook and twitter,facebook twitter区别,facebook ins twitter,twitter跟facebook等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android Facebook和Twitter分享


1. 背景

在年初的时候,公司的项目有个新的需求,在英文版的应用中加入Facebook和Twitter分享功能。

2. 完成情况

由于这个项目比较急,所以开发这个功能从预研到接入总共耗时一周。后来,在发了第一个英文正式版之后,在时间不是那么紧迫的情况下,将原来使用第三方库的Twitter分享,进行了重写,替换为Twitter官方SDK接入功能,耗时一周,所以从一开始的预研到最终定稿,总共花费时间两周。

3. 预研与接入

3.1 Facebook

在预研Facebook的时候,在我印象中,好像没有什么困难的地方,一切进行得都还挺顺利的样子。接着看吧,随着笔者的回忆,困难与问题也许会慢慢浮出水面的。

准备工作:

1) 从上方地址中可以下载到Facebook official SDK;

2) 从自己账户下拉菜单中选择add a new app,然后跟着里面的操作一步一步进行即可,最后你会得到一个Facebook app id;

3) 从 https://developers.facebook.com/docs/android/getting-started中可以看到 \

然后到可以执行这二条命令行之一的地方执行,可以得到一个公钥,并且将这个填写到\(注意,在大部份windows下是不能执行以上命令的,所以笔者建议可以安装一个类似可以执行Linux命令的模拟器)

准备工作就这么多了,下面开始进行代码接入步骤了。

1) 集成Facebook SDK到项目中去:将准备工作中下载的Facebook SDK包放到项目中去,然后在gralde文件中加入代码

compile(name: 'facebook-android-sdk-4.10.0', ext: 'aar')

 

2) 在AndroidManifest.xml中加入

 


        
        

 

其中的APP_ID就是第二步中得到的值。

3) 在你主程序刚开始的地方,或者自己重写的Application类的onCreate()中加入:

FacebookSdk.sdkInitialize(getApplicationContext());

 

4) 组建要分享的内容并且调用分享代码即可,

ShareLinkContent.Builder shareLinkContentBuilder = new ShareLinkContent.Builder();
		shareLinkContentBuilder.setContentDescription()
				.setContentTitle()
				.setContentUrl();
		ShareLinkContent shareLinkContent = shareLinkContentBuilder.build();
		if (ShareDialog.canShow(ShareLinkContent.class)) {
			ShareDialog.show((Activity)mContext, shareLinkContent);
		}

 

那么Facebook分享的内容差不多就是这么一些了。如果读者能跟着笔者走到这一步,相信目标近在咫尺了。

3.2 Twitter

接下来,笔者要说一说关于Twitter分享的过程与心得。这里笔者只介绍使用Twitter官方文档来接入Twitter功能,至于如何使用第三方库来完成,下次有空的时候再另写一篇Blog吧。相比Facebook分享的接入,笔者以为Twitter要复杂的多。其中涉及的操作也比Facebook繁琐很多,但是whatever,笔者此时能在这里记录这篇Blog,总算是能说明这件事情过去了,不管遇到了哪些问题,也总算是解决了。

弯路

凡事并不总是按照我们所预想着的方向顺利发展的。在笔者进行Twitter分享的过程中,尤能体现这一点。首先说一说笔者一开始通过查网页的方式进行查资料。笔者第一次进入Twitter官方介绍是在以下地址https://dev.twitter.com/oauth,这里主要介绍的是如何进行用户进入Twitter平台的授权方式。当然了,Twitter平台在用户登录时有一个授权的过程,只是有些时候,我们平常用户不能看到而已。于是笔者就顺着这条路往下走,然后就走进了开源的授权代码中。因为这是一条弯路,所以笔者只介绍到这里,不要再前进了,但是读者要是能一直走到底的话,那就太厉害了。笔者是不想继续了。

正途

弯路总归还是少走一点的好,毕竟人生路并不长。

https://docs.fabric.io/此站点是Twitter官方文档,有兴趣的可以自行查看。笔者主要介绍自己根据此文档,并且成功进行Twitter分享的步骤。

准备工作:

1) 给自己的Android Studio安装一个Fabric插件:只要打开Android Studio中的设置下的plugins,一搜Fabric for Android Studio就可以安装了;

2) 到https://apps.twitter.com/中进行create new app,跟着里面的步骤一直走会得到一个app key和一个app secret,注意,如果要进行发推功能的话,那么在这个步骤中,不要忘记选择Read, Write and Access direct messages这一项单选按钮;

准备工作就这点,少吧。

 

buildscript {
  repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
    // The Fabric Gradle plugin uses an open ended version to react
    // quickly to Android tooling updates
    classpath 'io.fabric.tools:gradle:1.+'
  }
}

apply plugin: 'com.android.application'
//Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'

repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
}

将这一段代码拷到主程序的build.gradld的第一行中,此处是声明一个maven库,从中我们可以进行后续的下载包的工作。

 

 

compile('com.twitter.sdk.android:twitter:1.13.0@aar') {
        transitive = true;
    }
    compile('com.twitter.sdk.android:tweet-composer:1.0.3@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
    compile('com.twitter.sdk.android:tweet-ui:1.10.0@aar') {
        transitive = true;
    }

将这一段代码拷到该文件的dependencies中进行程序包的下载。可以看到里面有跟Twitter毫无关系的程序包,比如crashlytics。但是笔者将其列在此处,说明少了它还是不行的,最起码程序无法正常通过编译。

 

在主程序目录下创建一个文件名为fabric.properties里面就写入

 

apiSecret=准备工作中的secret
apiKey=准备工作中的key

到这里,这个文件就不用去动了,等下要用到插件的时候,这个文件会自动进行更新并且替换掉原来的secret值,这些都是正常的。

 

接下来进行代码的接入。

1) 在Androidmanifest.xml中加入

 

注意此处的这个值不可改变,直接拷贝即可;
2) 在自己的主程序开始处,或者是在重写的Application类的onCreate()中加入

 

TwitterAuthConfig authConfig = new TwitterAuthConfig(Constants.TWITTER_API_KEY, Constants.TWITTER_API_SECRET);
Fabric.with(this, new Twitter(authConfig));
Fabric.with(this, new TwitterCore(authConfig), new TweetUi());
Fabric.with(this, new TwitterCore(authConfig), new TweetComposer(), new Crashlytics());
这个是为了加载你的授权信息;

 

3) 如果你的项目是要经过混淆的,那么就在混淆代码中加入

-dontwarn com.squareup.okhttp.**
-dontwarn com.google.appengine.api.urlfetch.**
-dontwarn rx.**
-dontwarn retrofit.**
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keep class retrofit.** { *; }
-keepclasseswithmembers class * {
    @retrofit.http.* ;
}

4) 将Twitter官方的登录按钮写入到你自己的布局文件中去

 

 


并且在程序中能过findViewById()找到这个按钮,通过如下方法
loginButton = (TwitterLoginButton) findViewById(R.id.login_button);
        btnShowTweet = (Button) findViewById(R.id.btn_show_tweet);
        llTweets = (LinearLayout) findViewById(R.id.ll_tweets);
        btnShowTweet.setOnClickListener(this);
        loginButton.setCallback(new Callback() {
            @Override
            public void success(Result result) {
                // Do something with result, which provides a TwitterSession for making API calls
                TwitterAuthToken authToken = result.data.getAuthT



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android Facebook和Twitter分享

相关文章

  • 2017-05-26ContentProvider域名替换小工具,contentprovider域名
  • 2017-05-26Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
  • 2017-05-26用Kotlin实现Android定制视图(KAD 06),kotlinandroid
  • 2017-05-26解析View的getDrawingCache方法,getdrawingcache
  • 2017-05-26x11vnc无法识别大写状态键的解决方法
  • 2017-05-26LinearLayout嵌套,linearlayout
  • 2017-05-227.5.4 WebView文件下载
  • 2017-05-26Android开发9:网络访问&Web服务开发,android开发9访问
  • 2017-05-26android工程师这么面试就能拿高薪,android高薪
  • 2017-05-26【Android】第7章(2)--布局控件常用的公共属性,android第7章

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • App解读,新闻解读app
    • 安卓下如何使用JUnit进行软件测试,安卓junit
    • Android 手机卫士--绑定sim卡序列号,androidsim
    • Android N(API level 24.)废弃了Html.fromHtml(String),ios添加api废弃警告
    • Android MVP 设计模式,androidmvp
    • Android 算法 关于递归和二分法的小算法,android二分法
    • 改变Activity启动时的默认动画,activity默认动画
    • Android 调用百度地图API,androidapi
    • Kotlin的数据类:节省很多行代码(KAD 10),kotlin很多行
    • 安卓第十三天笔记-服务(Service),安卓第十三天

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有