喵哆啦用第三方存管绑定失败授权登陆失败怎么办?

主题 : 使用新浪的SDK第三方登录出现你所访问的站点在微博认证失败
级别: 新手上路
UID: 455061
可可豆: 354 CB
威望: 268 点
在线时间: 72(时)
发自: Web Page
来源于&&分类
使用新浪的SDK第三方登录出现你所访问的站点在微博认证失败&&&
新浪微博登陆,在没有装微博的情况下,点击微博登陆出现图片上的问题 14:39:22.798 DevTongXie[] WeiboSDK openAppWithTransferObject 14:39:22.801 DevTongXie[] WeiboAppSupportSDKVersion (null) 14:39:22.801 DevTongXie[] WeiboSDK&&CanNotAuthInWeiboApp WBAuthorizeRequest
图片:屏幕快照
下午2.56.20.png
图片:屏幕快照
下午2.55.24.png
代码千行,Bug隐藏。朝令夕改,愁断肠。即使上了线又能怎样。
级别: 新手上路
UID: 261460
可可豆: 8 CB
威望: 10 点
在线时间: 58(时)
发自: Web Page
AppRedirectURL 配置不一致··登录新浪开发者····在我的应用-&应用信息-&高级应用-&授权设置-&应用回调页中的 url 地址保持一致就可 以了
级别: 新手上路
可可豆: 112 CB
威望: 112 点
在线时间: 273(时)
发自: Web Page
同样的问题!
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版后使用我的收藏没有帐号?
所属分类: &
使用腾讯微博账号登入,总是提示验证第三方账号授权失败,请稍后重试
以前腾讯微博账号密码输入后直接点go,就直接转跳至游戏的维护公告了,就可以玩了,现在输入后会转跳至腾讯微博账号登入界面,点击选择账号授权后,就出现
使用腾讯微博账号登入,总是提示验证第三方账号授权失败,请稍后重试。
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
这个问题已经存在很久了,以前遇到了卸载重新安装一个,就可以了,现在重新安装还是存在!
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
一样啊坐等上不去
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
不出意外,一直会上不去的。。。
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
TA的勋章:
你所说的是登陆18183吧?
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
静静 发表于
你所说的是登陆18183吧?
是游戏上不去& && && && && &
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
到底什么情况 给个说法啊
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
TA的勋章:
啃痘痘 发表于
是游戏上不去
游戏绑定QQ?我真没试过用QQ登陆MT游戏~!!!应该是这样的吧,登陆网页才能用QQ,而游戏需要用帐号的,那只是网页授权,而不是软件授权!(个人理解)
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
静静 发表于
游戏绑定QQ?我真没试过用QQ登陆MT游戏~!!!应该是这样的吧,登陆网页才能用QQ,而游戏需要用帐号的,那只是网 ...
一直都是授权QQ账号登陆 今天很多用QQ做授权账号的都上不到 已经很长时间了 还没客服人员来解决
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
TA的勋章:
啃痘痘 发表于
一直都是授权QQ账号登陆 今天很多用QQ做授权账号的都上不到 已经很长时间了 还没客服人员来解决&&...
帮你反映下,你也发邮件到!
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
不删档测试送好礼!
《我叫MTOnline》傻馒勋章
为《我叫MTOnline》论坛做出突出贡献的会员
注册账号后积极发帖的各位会员(注册10天内发20贴以上)
经常参与各类话题的讨论(发帖数达300以上)
经常解答提问版玩家提问,并且积极帮助玩家的会员,在获得编辑认可后获得此勋章
论坛内容/推广小组专用
大尺度卖萌勋章
在论坛任意版块发帖晒出自己的萌照通过审核即可获得喵哆啦的个人频道 - 视频列表
微信分享给好友iOS应用使用QQ、新浪微博为第三方登录
_tencentOAuth = [[TencentOAuth alloc] initWithAppId: @"your app id" andDelegate: self];
- (void)tencentDidL
// 登录成功
- (void)tencentDidL
- (void)tencentDidNotLogin: (BOOL);
// 登录失败,一种为用户单击了取消按钮。
- (void)tencentDidNotN
// 没有网络
[_tencentOAuth authorize:_permissions inSafari:NO];
SinaWeibo *weiboOA
weiboOAuth = [[SinaWeibo alloc] initWithAppKey:kAppKey appSecret:kAppSecret appRedirectURI:kAppRedirectURI andDelegate: delegate];
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。使用share SDK实现第三方授权登录、分享综合(2.x版本) - 推酷
使用share SDK实现第三方授权登录、分享综合(2.x版本)
StartActivity:
package com.home.
import android.app.A
import android.content.I
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.B
public class StartActivity extends Activity implements OnClickListener {
private Button authorizeB
private Button shareB
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
initWidget();
private void initWidget() {
authorizeBtn = (Button) findViewById(R.id.start_btn_authorize);
shareBtn = (Button) findViewById(R.id.start_btn_share);
authorizeBtn.setOnClickListener(this);
shareBtn.setOnClickListener(this);
public void onClick(View v) {
if (v == authorizeBtn) {
Intent intent = new Intent(this, AuthorizeActivity.class);
startActivity(intent);
} else if (v == shareBtn) {
Intent intent = new Intent(this, ShareActivity.class);
startActivity(intent);
AuthorizeActivity:
package com.home.
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.M
import cn.sharesdk.douban.D
import cn.sharesdk.dropbox.D
import cn.sharesdk.evernote.E
import cn.sharesdk.facebook.F
import cn.sharesdk.flickr.F
import cn.sharesdk.foursquare.FourS
import cn.sharesdk.framework.P
import cn.sharesdk.framework.PlatformActionL
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.instagram.I
import cn.sharesdk.kaixin.KaiX
import cn.sharesdk.linkedin.LinkedIn;
import cn.sharesdk.netease.microblog.NetEaseMicroB
import cn.sharesdk.renren.R
import cn.sharesdk.sina.weibo.SinaW
import cn.sharesdk.sohu.microblog.SohuMicroB
import cn.sharesdk.sohu.suishenkan.SohuS
import cn.sharesdk.tencent.qzone.QZ
import cn.sharesdk.tencent.weibo.TencentW
import cn.sharesdk.tumblr.T
import cn.sharesdk.twitter.T
import cn.sharesdk.vkontakte.VK
import cn.sharesdk.youdao.YouD
import android.app.A
import android.content.I
import android.os.B
import android.os.H
import android.os.Handler.C
import android.os.M
import android.view.V
import android.widget.AdapterV
import android.widget.T
import android.widget.AdapterView.OnItemClickL
import android.widget.ListV
public class AuthorizeActivity extends Activity implements OnItemClickListener,
PlatformActionListener, Callback {
private ListView listV
private String[]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.authorize);
ShareSDK.initSDK(this);
handler = new Handler(this);
listView = (ListView) findViewById(R.id.authorize_lv);
listView.setOnItemClickListener(this);
initData();
protected void onDestroy() {
super.onDestroy();
ShareSDK.stopSDK(this);
* 初始化ListView数据
private void initData() {
List&Map&String, Object&& list = new ArrayList&Map&String, Object&&();
names = new String[] { SinaWeibo.NAME, TencentWeibo.NAME, QZone.NAME,
Renren.NAME, KaiXin.NAME, SohuMicroBlog.NAME,
NetEaseMicroBlog.NAME, Douban.NAME, Evernote.NAME, YouDao.NAME,
Facebook.NAME, Twitter.NAME, LinkedIn.NAME, Dropbox.NAME,
Flickr.NAME, FourSquare.NAME, Instagram.NAME,
SohuSuishenkan.NAME, Tumblr.NAME, VKontakte.NAME };
int[] imageIds = new int[] { R.drawable.logo_sinaweibo,
R.drawable.logo_tencentweibo, R.drawable.logo_qzone,
R.drawable.logo_renren, R.drawable.logo_kaixin,
R.drawable.logo_sohumicroblog,
R.drawable.logo_neteasemicroblog, R.drawable.logo_douban,
R.drawable.logo_evernote, R.drawable.logo_youdao,
R.drawable.logo_facebook, R.drawable.logo_twitter,
R.drawable.logo_linkedin, R.drawable.logo_dropbox,
R.drawable.logo_flickr, R.drawable.logo_foursquare,
R.drawable.logo_instagram, R.drawable.logo_sohusuishenkan,
R.drawable.logo_tumblr, R.drawable.logo_vkontakte };
for (int i = 0; i & names. i++) {
Map&String, Object& map = new HashMap&String, Object&();
map.put(&name&, names[i]);
map.put(&image&, imageIds[i]);
list.add(map);
MyAdapter adapter = new MyAdapter(this, list);
listView.setAdapter(adapter);
public void onItemClick(AdapterView&?& arg0, View arg1, int arg2, long arg3) {
Platform plat = ShareSDK.getPlatform(this, names[arg2]);
plat.setPlatformActionListener(this);
plat.showUser(null);
public boolean handleMessage(Message msg) {
Platform plat = (Platform) msg.
switch (msg.arg1) {
case 1: { // success
Toast.makeText(this, plat.getName() + &授权成功&, Toast.LENGTH_SHORT)
case 2: { // error
Toast.makeText(this, plat.getName() + &授权失败&, Toast.LENGTH_SHORT)
case 3: { // cancel
Toast.makeText(this, plat.getName() + &授权取消&, Toast.LENGTH_SHORT)
Intent intent = new Intent(AuthorizeActivity.this, MainActivity.class);
intent.putExtra(&name&, plat.getName());
startActivity(intent);
public void onCancel(Platform plat, int arg1) {
Message msg = new Message();
msg.arg1 = 3;
handler.sendMessage(msg);
public void onComplete(Platform plat, int arg1, HashMap&String, Object& arg2) {
Message msg = new Message();
msg.arg1 = 1;
handler.sendMessage(msg);
public void onError(Platform plat, int arg1, Throwable t) {
t.printStackTrace();
Message msg = new Message();
msg.arg1 = 2;
handler.sendMessage(msg);
ShareActivity:
package com.home.
import java.io.F
import java.io.FileOutputS
import java.util.HashM
import cn.sharesdk.framework.P
import cn.sharesdk.framework.PlatformActionL
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyS
import cn.sharesdk.renren.R
import cn.sharesdk.sina.weibo.SinaW
import cn.sharesdk.tencent.qzone.QZ
import cn.sharesdk.tencent.weibo.TencentW
import android.app.A
import android.graphics.B
import android.graphics.BitmapF
import android.pressF
import android.os.B
import android.os.E
import android.view.V
import android.view.View.OnClickL
import android.widget.B
public class ShareActivity extends Activity implements OnClickListener {
private Button noUIB
private Button hasUIB
public static String TEST_IMAGE;
private Button QQZoneB
private Button txweiboB
private Button sinaB
private Button renrenB
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.share);
ShareSDK.initSDK(this);
initWidget();
initImage();
private void initWidget() {
noUIBtn = (Button) findViewById(R.id.share_btn_all_noUI);
hasUIBtn = (Button) findViewById(R.id.share_btn_all_hasUI);
QQZoneBtn = (Button) findViewById(R.id.share_btn_Qzone);
txweiboBtn = (Button) findViewById(R.id.share_btn_txweibo);
sinaBtn = (Button) findViewById(R.id.share_btn_sinaweibo);
renrenBtn = (Button) findViewById(R.id.share_btn_renren);
noUIBtn.setOnClickListener(this);
hasUIBtn.setOnClickListener(this);
QQZoneBtn.setOnClickListener(this);
txweiboBtn.setOnClickListener(this);
sinaBtn.setOnClickListener(this);
renrenBtn.setOnClickListener(this);
public void onClick(View v) {
if (v == noUIBtn) {
showShare(true, null);
} else if (v == hasUIBtn) {
showShare(false, null);
} else if (v == QQZoneBtn) {
showShare(false, QZone.NAME);
} else if (v == txweiboBtn) {
showShare(false, TencentWeibo.NAME);
} else if (v == sinaBtn) {
showShare(false, SinaWeibo.NAME);
} else if (v == renrenBtn) {
showShare(false, Renren.NAME);
private void showShare(boolean silent, String platform) {
final OnekeyShare oks = new OnekeyShare();
oks.setNotification(R.drawable.ic_launcher,
this.getString(R.string.app_name));
oks.setAddress(&&);
oks.setTitle(this.getString(R.string.evenote_title));
oks.setTitleUrl(&&);
oks.setText(this.getString(R.string.share_content));
oks.setImagePath(TEST_IMAGE);
oks.setImageUrl(&/imgs/sharesdk/content//3.jpg&);
oks.setUrl(&&);
oks.setFilePath(TEST_IMAGE);
oks.setComment(this.getString(R.string.share));
oks.setSite(this.getString(R.string.app_name));
oks.setSiteUrl(&&);
oks.setVenueName(&ShareSDK&);
oks.setVenueDescription(&This is a beautiful place!&);
oks.setLatitude(23.056081f);
oks.setLongitude(113.385708f);
oks.setSilent(silent);
if (platform != null) {
oks.setPlatform(platform);
// 去除注释,可令编辑页面显示为Dialog模式
// oks.setDialogMode();
// 去除注释,在自动授权时可以禁用SSO方式
// oks.disableSSOWhenAuthorize();
// 去除注释,则快捷分享的操作结果将通过OneKeyShareCallback回调
// oks.setCallback(new OneKeyShareCallback());
// 去除注释,演示在九宫格添加自定义的图标
// Bitmap logo = BitmapFactory.decodeResource(getResources(),
// R.drawable.ic_launcher);
// String label = getString(R.string.app_name);
// OnClickListener listener = new OnClickListener() {
// public void onClick(View v) {
// String text = &Customer Logo -- ShareSDK &
// + ShareSDK.getSDKVersionName();
// Toast.makeText(ShareActivity.this, text, Toast.LENGTH_SHORT)
// .show();
// oks.finish();
// oks.setCustomerLogo(logo, label, listener);
oks.show(this);
private void initImage() {
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())
&& Environment.getExternalStorageDirectory().exists()) {
File baseFile = new File(
Environment.getExternalStorageDirectory(), &share&);
if (!baseFile.exists()) {
baseFile.mkdir();
TEST_IMAGE = baseFile.getAbsolutePath() + &/picture.png&;
TEST_IMAGE = getApplication().getFilesDir().getAbsolutePath()
+ &/picture.png&;
File file = new File(TEST_IMAGE);
if (!file.exists()) {
file.createNewFile();
Bitmap pic = BitmapFactory.decodeResource(getResources(),
R.drawable.picture);
FileOutputStream fos = new FileOutputStream(file);
press(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (Throwable t) {
t.printStackTrace();
TEST_IMAGE =
class OneKeyShareCallback implements PlatformActionListener {
public void onComplete(Platform plat, int action,
HashMap&String, Object& res) {
System.out.println(res.toString());
// 在这里添加分享成功的处理代码
public void onError(Platform plat, int action, Throwable t) {
t.printStackTrace();
// 在这里添加分享失败的处理代码
public void onCancel(Platform plat, int action) {
// 在这里添加取消分享的处理代码
MainActivity:
package com.home.
import java.util.HashM
import android.app.A
import android.content.I
import android.os.B
import android.os.H
import android.os.Handler.C
import android.os.M
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
import cn.sharesdk.framework.P
import cn.sharesdk.framework.PlatformActionL
import cn.sharesdk.framework.ShareSDK;
public class MainActivity extends Activity implements OnClickListener,
PlatformActionListener, Callback {
private Button getInfoB
private Button logoutB
private String platN
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initWidget();
platName = getIntent().getStringExtra(&name&);
handler = new Handler(this);
private void initWidget() {
getInfoBtn = (Button) findViewById(R.id.main_btn_getInfo);
logoutBtn = (Button) findViewById(R.id.main_btn_logout);
getInfoBtn.setOnClickListener(this);
logoutBtn.setOnClickListener(this);
public void onClick(View v) {
if (v == getInfoBtn) {
if (platName == null || &&.equals(platName)) {
Toast.makeText(this, &获取信息失败&, Toast.LENGTH_SHORT).show();
Platform plat = ShareSDK.getPlatform(this, platName);
plat.setPlatformActionListener(this);
plat.showUser(null);
} else if (v == logoutBtn) {
if (platName == null || &&.equals(platName)) {
Toast.makeText(this, &注销失败&, Toast.LENGTH_SHORT).show();
Platform plat = ShareSDK.getPlatform(this, platName);
if (plat != null && plat.isValid()) {
plat.removeAccount();
public boolean handleMessage(Message msg) {
switch (msg.arg1) {
case 1: { // success
Intent intent = new Intent(MainActivity.this,
ShowInfoActivity.class);
intent.putExtra(&data&, String.valueOf(msg.obj));
startActivity(intent);
case 2: {// error
Platform plat = (Platform) msg.
Toast.makeText(this, plat.getName() + &授权失败&, Toast.LENGTH_SHORT)
case 3: {// cancel
Platform plat = (Platform) msg.
Toast.makeText(this, plat.getName() + &授权取消&, Toast.LENGTH_SHORT)
public void onCancel(Platform plat, int arg1) {
Message msg = new Message();
msg.arg1 = 3;
handler.sendMessage(msg);
public void onComplete(Platform arg0, int arg1, HashMap&String, Object& res) {
Message msg = new Message();
msg.arg1 = 1;
JsonUtils ju = new JsonUtils();
String json = ju.fromHashMap(res);
msg.obj = ju.format(json);
handler.sendMessage(msg);
public void onError(Platform plat, int arg1, Throwable arg2) {
Message msg = new Message();
msg.arg1 = 2;
handler.sendMessage(msg);
ShowInfoActivity:
package com.home.
import android.app.A
import android.os.B
import android.widget.TextV
public class ShowInfoActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show_info);
TextView show = (TextView) findViewById(R.id.show_info_tv);
show.setText(getIntent().getStringExtra(&data&));
MyAdapter:
package com.home.
import java.util.L
import java.util.M
import android.content.C
import android.view.LayoutI
import android.view.V
import android.view.ViewG
import android.widget.BaseA
import android.widget.ImageV
import android.widget.TextV
public class MyAdapter extends BaseAdapter {
private List&Map&String, Object&&
public MyAdapter(Context context, List&Map&String, Object&& list) {
this.context =
this.list =
public int getCount() {
return list.size();
public Object getItem(int arg0) {
return list.get(arg0);
public long getItemId(int arg0) {
return arg0;
public View getView(int position, View arg1, ViewGroup arg2) {
View view = LayoutInflater.from(context).inflate(R.layout.listview_row,
ImageView imageView = (ImageView) view
.findViewById(R.id.listview_row_iv);
TextView textView = (TextView) view.findViewById(R.id.listview_row_tv);
imageView.setBackgroundResource((Integer) list.get(position).get(
&image&));
textView.setText((String) list.get(position).get(&name&));
JsonUtils:
package com.home.
import java.util.ArrayL
import java.util.HashM
import java.util.I
import java.util.Map.E
import org.json.JSONA
import org.json.JSONE
import org.json.JSONO
public class JsonUtils {
public HashMap&String, Object& fromJson(String jsonStr) {
if (jsonStr.startsWith(&[&) && jsonStr.endsWith(&]&)) {
jsonStr = &{\&fakelist\&:& + jsonStr + &}&;
JSONObject json = new JSONObject(jsonStr);
return fromJson(json);
} catch (Throwable t) {
t.printStackTrace();
return new HashMap&String, Object&();
private HashMap&String, Object& fromJson(JSONObject json)
throws JSONException {
HashMap&String, Object& map = new HashMap&String, Object&();
@SuppressWarnings(&unchecked&)
Iterator&String& iKey = json.keys();
while (iKey.hasNext()) {
String key = iKey.next();
Object value = json.opt(key);
if (JSONObject.NULL.equals(value)) {
if (value != null) {
if (value instanceof JSONObject) {
value = fromJson((JSONObject) value);
} else if (value instanceof JSONArray) {
value = fromJson((JSONArray) value);
map.put(key, value);
private ArrayList&Object& fromJson(JSONArray array) throws JSONException {
ArrayList&Object& list = new ArrayList&Object&();
for (int i = 0, size = array.length(); i & i++) {
Object value = array.opt(i);
if (value instanceof JSONObject) {
value = fromJson((JSONObject) value);
} else if (value instanceof JSONArray) {
value = fromJson((JSONArray) value);
list.add(value);
public String fromHashMap(HashMap&String, Object& map) {
return getJSONObject(map).toString();
} catch (Throwable t) {
t.printStackTrace();
return &&;
@SuppressWarnings(&unchecked&)
private JSONObject getJSONObject(HashMap&String, Object& map)
throws JSONException {
JSONObject json = new JSONObject();
for (Entry&String, Object& entry : map.entrySet()) {
Object value = entry.getValue();
if (value instanceof HashMap&?, ?&) {
value = getJSONObject((HashMap&String, Object&) value);
} else if (value instanceof ArrayList&?&) {
value = getJSONArray((ArrayList&Object&) value);
json.put(entry.getKey(), value);
@SuppressWarnings(&unchecked&)
private JSONArray getJSONArray(ArrayList&Object& list) throws JSONException {
JSONArray array = new JSONArray();
for (Object value : list) {
if (value instanceof HashMap&?, ?&) {
value = getJSONObject((HashMap&String, Object&) value);
} else if (value instanceof ArrayList&?&) {
value = getJSONArray((ArrayList&Object&) value);
array.put(value);
public String format(String jsonStr) {
return format(&&, fromJson(jsonStr));
} catch (Throwable t) {
t.printStackTrace();
return &&;
@SuppressWarnings(&unchecked&)
private String format(String sepStr, HashMap&String, Object& map) {
StringBuffer sb = new StringBuffer();
sb.append(&{\n&);
String mySepStr = sepStr + &\t&;
int i = 0;
for (Entry&String, Object& entry : map.entrySet()) {
if (i & 0) {
sb.append(&,\n&);
sb.append(mySepStr).append('\&').append(entry.getKey())
.append(&\&:&);
Object value = entry.getValue();
if (value instanceof HashMap&?, ?&) {
sb.append(format(mySepStr, (HashMap&String, Object&) value));
} else if (value instanceof ArrayList&?&) {
sb.append(format(mySepStr, (ArrayList&Object&) value));
} else if (value instanceof String) {
sb.append('\&').append(value).append('\&');
sb.append(value);
sb.append('\n').append(sepStr).append('}');
return sb.toString();
@SuppressWarnings(&unchecked&)
private String format(String sepStr, ArrayList&Object& list) {
StringBuffer sb = new StringBuffer();
sb.append(&[\n&);
String mySepStr = sepStr + &\t&;
int i = 0;
for (Object value : list) {
if (i & 0) {
sb.append(&,\n&);
sb.append(mySepStr);
if (value instanceof HashMap&?, ?&) {
sb.append(format(mySepStr, (HashMap&String, Object&) value));
} else if (value instanceof ArrayList&?&) {
sb.append(format(mySepStr, (ArrayList&Object&) value));
} else if (value instanceof String) {
sb.append('\&').append(value).append('\&');
sb.append(value);
sb.append('\n').append(sepStr).append(']');
return sb.toString();
assets里面的ShareSDK.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&DevInfor&
1、表格中的第一项
AppKey=&api20& /&
是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey
2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:
&SinaWeibo
SortId=&1&
AppSecret=&38a4ff9f0daaf31e02e3&
RedirectUrl=&&
Enable=&true& /&
其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大
越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息
Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。
Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包
已经添加到应用中,平台实例依然不可获取。
各个平台注册应用信息的地址如下:
http://dev.
/intro/login/
http://open.
http://open.
http://open.
有道云笔记
/open/developguide.html#app
/secure/developer?newapp=
FourSquare
搜狐随身看
/services/
/developers
/developers
/developer#
http://vk.com/dev
&ShareSDK AppKey=&androidv1101& /&
&!-- 修改成你在sharesdk后台注册的应用的appkey& --&
&SinaWeibo
AppSecret=&38a4ff9f0daaf31e02e3&
Enable=&true&
RedirectUrl=&&
SortId=&1& /&
&TencentWeibo
AppSecret=&ae36f4ee3946e1cbb98dff5c&
Enable=&true&
RedirectUri=&&
SortId=&2& /&
AppKey=&aed9be27bae87cd&
Enable=&true&
SortId=&3& /&
Wechat微信和WechatMoments微信朋友圈的appid是一样的;
注意:开发者不能用我们这两个平台的appid,否则分享不了
微信测试的时候,微信测试需要先签名打包出apk,
sample测试微信,要先签名打包,keystore在sample项目中,密码123456
AppId=&wxf87885&
Enable=&true&
SortId=&4& /&
&WechatMoments
AppId=&wxf87885&
Enable=&true&
SortId=&5& /&
&WechatFavorite
AppId=&wxf87885&
Enable=&true&
SortId=&6& /&
AppKey=&aed9be27bae87cd&
Enable=&true&
SortId=&7& /&
ConsumerKey=&179&
ConsumerSecret=&a5fe26c80cb573&
Enable=&true&
SortId=&8& /&
CallbackUrl=&&
ConsumerKey=&mnTGqtXk0TYMXYTN7qUxg&
ConsumerSecret=&ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc&
Enable=&true&
SortId=&9& /&
ApiKey=&fc5b8aed373c4c27a05b712acba0f8c3&
AppId=&226427&
Enable=&true&
SecretKey=&f29df781abdd4f49beca5a&
SortId=&10& /&
AppKey=&887cee81ffc&
AppSecret=&dab6db2a23&
Enable=&true&
RedirectUri=&&
SortId=&11& /&
Enable=&true&
SortId=&12& /&
&ShortMessage
Enable=&true&
SortId=&13& /&
&SohuMicroBlog
ApiKey=&SAfmTG1blxZY3HztESWx&
CallbackUrl=&&
ConsumerKey=&SAfmTG1blxZY3HztESWx&
ConsumerSecret=&yfTZf)!rVwh*3dqQuVJVsUL37!F)!yS9S!Orcsij&
Enable=&true&
SortId=&14& /&
&NetEaseMicroBlog
ConsumerKey=&T5EI7BXe13vfyDuy&
ConsumerSecret=&gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j&
Enable=&true&
RedirectUri=&&
SortId=&15& /&
ApiKey=&02e2cbe5ca06dee149b0b&
Enable=&true&
RedirectUri=&&
Secret=&9f1e7b4f71304f2f&
SortId=&16& /&
ConsumerKey=&dcde25dca105bcc3dab940&
ConsumerSecret=&de7ff44838fe&
Enable=&true&
HostType=&product&
RedirectUri=&&
SortId=&17& /&
&SohuSuishenkan
AppKey=&e504b746c86e08a19db0&
AppSecret=&b8eecefc9c&
Enable=&true&
RedirectUri=&&
SortId=&18& /&
在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。
一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到
/support/上激活你的ConsumerKey,激活成功后,修改HostType
为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为
“product”。
如果目标设备上已经安装了印象笔记客户端,ShareSDK允许应用调用本地API来完成分享,但
是需要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。
ConsumerKey=&sharesdk-7807&
ConsumerSecret=&d05bf&
Enable=&true&
HostType=&sandbox&
ShareByAppClient=&true&
SortId=&19& /&
ApiKey=&ejo5ibkye3vo&
Enable=&true&
RedirectUrl=&&
SecretKey=&cC7B2jpxITqPLZ5M&
SortId=&20& /&
&GooglePlus
Enable=&true&
SortId=&21& /&
&FourSquare
ClientID=&G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU&
ClientSecret=&3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU&
Enable=&true&
RedirectUrl=&&
SortId=&22& /&
&Pinterest
ClientId=&1432928&
Enable=&true&
SortId=&23& /&
ApiKey=&33d833ee6b6fcadd313dd&
ApiSecret=&3a2c5b42a8fbb8bb&
Enable=&true&
RedirectUri=&&
SortId=&24& /&
CallbackUrl=&&
Enable=&true&
OAuthConsumerKey=&2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM&
SecretKey=&3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo&
SortId=&25& /&
AppKey=&7janx53ilz11gbs&
AppSecret=&c1hpx5fz6tzkm32&
Enable=&true&
SortId=&26& /&
&VKontakte
ApplicationId=&3921561&
Enable=&true&
SortId=&27& /&
&Instagram
ClientId=&ff68efc&
ClientSecret=&1b2e82f05c3fe34e31a1&
Enable=&true&
RedirectUri=&&
SortId=&28& /&
AppId=&yx0d9a9f80ff&
Enable=&true&
SortId=&29& /&
&!-- AppId=&yx28eafabadd34a2a& --&
&YixinMoments
AppId=&yx0d9a9f80ff&
Enable=&true&
SortId=&30& /&
&/DevInfor&
AndroidManifest.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
package=&com.home.testshare&
android:versionCode=&1&
android:versionName=&1.0& &
android:minSdkVersion=&8&
android:targetSdkVersion=&17& /&
&uses-permission android:name=&android.permission.GET_TASKS& /&
&uses-permission android:name=&android.permission.INTERNET& /&
&uses-permission android:name=&android.permission.ACCESS_WIFI_STATE& /&
&uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE& /&
&uses-permission android:name=&android.permission.CHANGE_WIFI_STATE& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&uses-permission android:name=&android.permission.MANAGE_ACCOUNTS& /&
&uses-permission android:name=&android.permission.GET_ACCOUNTS& /&
&uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS& /&
&supports-screens
android:anyDensity=&true&
android:largeScreens=&true&
android:normalScreens=&true&
android:resizeable=&true&
android:smallScreens=&true& /&
&application
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &
android:name=&com.home.testshare.StartActivity&
android:label=&@string/app_name& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&activity android:name=&com.home.testshare.AuthorizeActivity& /&
&activity android:name=&com.home.testshare.MainActivity& /&
&activity android:name=&com.home.testshare.ShowInfoActivity& /&
&activity android:name=&com.home.testshare.ShareActivity& /&
&!-- share SDK --&
android:name=&cn.sharesdk.framework.ShareSDKUIShell&
android:configChanges=&keyboardHidden|orientation|screenSize&
android:theme=&@android:style/Theme.Translucent.NoTitleBar&
android:windowSoftInputMode=&stateHidden|adjustResize& &
AuthorizeAdapter表示一个继承自cn.sharesdk.framework.authorize.AuthorizeAdapter
的类,这个类可以监听到页面的生命周期,也可以获取授权页面的各种UI控件。
开发者可以通过继承AuthorizeAdapter,重写其方法,并获取各种UI来自定义这个页面的行为。
&meta-data
android:name=&AuthorizeAdapter&
android:value=&cn.sharesdk.demo.MyAdapter& /&
Dropbox的SSO功能需要在此处添加一个对ACTION_VIEW事件的过滤器,其中的scheme是
“db-”前缀再开发者应用的加上appKey。如果此过滤器不设置,则不能完成SSO功能授权
&intent-filter&
&data android:scheme=&db-7janx53ilz11gbs& /&
&action android:name=&android.intent.action.VIEW& /&
&category android:name=&android.intent.category.BROWSABLE& /&
&category android:name=&android.intent.category.DEFAULT& /&
&/intent-filter&
&/activity&
&/application&
&/manifest&
布局文件layout:
start.xml:
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
android:id=&@+id/start_btn_authorize&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&授权& /&
android:id=&@+id/start_btn_share&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享& /&
&/LinearLayout&
authorize.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
android:id=&@+id/authorize_lv&
android:layout_width=&match_parent&
android:layout_height=&wrap_content& /&
&/LinearLayout&
listview_row.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&horizontal& &
&ImageView
android:id=&@+id/listview_row_iv&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_gravity=&center_vertical&
android:layout_margin=&5dp& /&
android:id=&@+id/listview_row_tv&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_gravity=&center_vertical&
android:layout_marginLeft=&20dp&
android:textSize=&18sp& /&
&/LinearLayout&
main.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
android:id=&@+id/main_btn_getInfo&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&获取信息& /&
android:id=&@+id/main_btn_logout&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&注销登录& /&
&/LinearLayout&
share.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
android:id=&@+id/share_btn_all_hasUI&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享全部(有分享界面)& /&
android:id=&@+id/share_btn_all_noUI&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享全部(无分享界面)& /&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:layout_marginTop=&10dp&
android:gravity=&center_horizontal&
android:text=&分享到指定平台(只列出部分)& /&
android:layout_marginTop=&10dp&
android:id=&@+id/share_btn_Qzone&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享到QQ空间& /&
android:id=&@+id/share_btn_txweibo&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享到腾讯微博& /&
android:id=&@+id/share_btn_sinaweibo&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享到新浪微博& /&
android:id=&@+id/share_btn_renren&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&分享到人人网& /&
&/LinearLayout&
show_info.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&RelativeLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
&ScrollView
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:layout_alignParentTop=&true& &
android:id=&@+id/show_info_tv&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:layout_marginRight=&10dp&
android:autoLink=&all&
android:textColor=&#ff000000& /&
&/ScrollView&
&/RelativeLayout&
values里面的strings:
&?xml version=&1.0& encoding=&utf-8&?&
&resources&
&string name=&app_name&&TestShare&/string&
&string name=&action_settings&&Settings&/string&
&string name=&hello_world&&Hello world!&/string&
&integer name=&app_version_code&&27&/integer&
&string name=&app_version&&2.3.2&/string&
&string name=&proj_name&&ShareSDK&/string&
&string name=&more&&更多&/string&
&string name=&sm_item_demo&&接口&/string&
&string name=&sm_item_auth&&授权&/string&
&string name=&sm_item_wechat&&微信&/string&
&string name=&sm_item_yixin&&易信&/string&
&string name=&sm_item_customer&&自定义接口&/string&
&string name=&sm_item_fl_weibo&&关注新浪微博&/string&
&string name=&sm_item_fl_tc&&关注腾讯微博&/string&
&string name=&sm_item_visit_wechat&&关注官方微信&/string&
&string name=&sm_item_visit_website&&关注官方网站&/string&
&string name=&sm_item_about&&Demo版本 Ver. %s&/string&
&string name=&plz_choose_wechat&&请选择微信客户端完成操作&/string&
&string name=&get_token_format&&获取%s的AccessToken&/string&
&string name=&get_user_info_format&&获取%s授权用户资料&/string&
&string name=&get_other_info_format&&获取%s其他用户资料&/string&
&string name=&share_to_format&&分享到%s&/string&
&string name=&demo_share_all_gui&&分享全部(有分享界面)&/string&
&string name=&demo_share_all&&分享全部(无界面,直接分享)&/string&
&string name=&demo_get_access_token&&获取AccessToken&/string&
&string name=&demo_get_my_info&&获取授权用户资料&/string&
&string name=&demo_get_other_info&&获取其他用户资料&/string&
&string name=&get_sina_friends_list&&获取新浪微博关注列表&/string&
&string name=&get_tencent_friends_list&&获取腾讯微博关注列表&/string&
&string name=&customer_douban&&搜索用户&/string&
&string name=&customer_facebook&&获取通知列表&/string&
&string name=&customer_nemb&&获取推荐话题&/string&
&string name=&customer_renren&&上传照片到用户的相册&/string&
&string name=&customer_sina&&获取微博主页列表&/string&
&string name=&customer_qzone&&发表日志到QQ空间&/string&
&string name=&customer_tencent&&获取我的粉丝列表&/string&
&string name=&customer_twitter&&获取主页列表&/string&
&string name=&customer_kaixin&&获取可能认识的人&/string&
&string name=&customer_sohu&&获取好友列表&/string&
&string name=&customer_youdao&&获取笔记本列表&/string&
&string name=&customer_suishenkan&&获取搜狐随身看书签列表&/string&
&string name=&not_yet_authorized&&尚未授权&/string&
&string name=&share_content&&ShareSDK for Android不仅集成简单、支持如QQ好友、微信、新浪微博、腾讯微博等所有社交平台,而且还有强大的统计分析管理后台,实时了解用户、信息流、回流率、传播效应等数据,详情见官网&@ShareSDK&/string&
&string name=&share_content_short&&ShareSDK不仅集成简单、支持如微信、新浪微博、腾讯微博等社交平台,而且还有强大的统计分析管理后台,实时了解用户、信息流、回流率、传播效应等数据,详情见官网 @ShareSDK&/string&
&string name=&evenote_title&&ShareSDK是一个神奇的SDK&/string&
&string name=&update&&文字分享&/string&
&string name=&image_upload&&图片分享(本地图片)&/string&
&string name=&image_upload_bitmap&&图片分享(Bitmap对象)&/string&
&string name=&image_upload_url&&图片分享(网络图片)&/string&
&string name=&emoji_upload&&表情分享(本地图片)&/string&
&string name=&emoji_upload_url&&表情分享(网络图片)&/string&
&string name=&emoji_upload_bm&&表情分享(Bitmap对象)&/string&
&string name=&music_upload&&音乐分享&/string&
&string name=&video_upload&&视频分享&/string&
&string name=&webpage_upload&&网页分享(本地图片)&/string&
&string name=&webpage_upload_bitmap&&网页分享(Bitmap对象)&/string&
&string name=&webpage_upload_url&&网页分享(网络图片)&/string&
&string name=&app_upload&&应用分享(携带文件)&/string&
&string name=&app_upload_extinfo&&应用分享(携带脚本)&/string&
&string name=&file_upload&&文件分享&/string&
&string name=&share_to_wechat&&微信好友&/string&
&string name=&share_to_moment&&微信朋友圈&/string&
&string name=&share_to_favorite&&微信收藏&/string&
&string name=&wechat_demo_title&&微信分享Demo标题&/string&
&string name=&qzone_add_blog_sample&&&h1&QQ互联&/h1&&font color=&red&&轻松分享,&/font&&font color=&green&&快乐生活。&/font&&a href=&&&详情请看。&/a&&img src=&/ptlogin/head/1_100.gif&&&/img&&/string&
&string name=&wechat_client_is_not_installed_correctly&&微信客户端未安装或版本太旧&/string&
&string name=&wechat_client_not_support_following_operation&&微信客户端不支持第三方应用执行关注功能&/string&
&string name=&share_to_yixin&&易信好友&/string&
&string name=&share_to_yixin_moment&&易信朋友圈&/string&
&string name=&share_to_yixin_favorite&&易信收藏&/string&
&string name=&yixin_demo_title&&易信分享Demo标题&/string&
&string name=&receive_rewards&&恭喜你得到%s个金币!&/string&
&string name=&buy_success&&购买成功&/string&
&string name=&buy_failed&&购买失败&/string&
&string name=&weibo_oauth_regiseter&&应用授权&/string&
&string name=&website&&&/string&
&string name=&weibo_upload_content&&分享图片&/string&
&string name=&wechat_client_inavailable&&目前您的微信版本过低或未安装微信,需要安装微信才能使用&/string&
&string name=&google_plus_client_inavailable&&Google+ 版本过低或者没有安装,需要升级或安装Google+才能使用!&/string&
&string name=&qq_client_inavailable&&QQ 版本过低或者没有安装,需要升级或安装QQ才能使用!&/string&
&string name=&pinterest_client_inavailable&&Pinterest版本过低或者没有安装,需要升级或安装Pinterest才能使用!&/string&
&string name=&instagram_client_inavailable&&Instagram版本过低或者没有安装,需要升级或安装Instagram才能使用!&/string&
&string name=&yixin_client_inavailable&&目前您的易信版本过低或未安装易信,需要安装易信才能使用&/string&
&string name=&sinaweibo&&新浪微博&/string&
&string name=&tencentweibo&&腾讯微博&/string&
&string name=&qzone&&QQ空间&/string&
&string name=&wechat&&微信好友&/string&
&string name=&wechatmoments&&微信朋友圈&/string&
&string name=&wechatfavorite&&微信收藏&/string&
&string name=&facebook&&Facebook&/string&
&string name=&twitter&&Twitter&/string&
&string name=&renren&&人人网&/string&
&string name=&kaixin&&开心网&/string&
&string name=&email&&邮件&/string&
&string name=&shortmessage&&信息&/string&
&string name=&sohumicroblog&&搜狐微博&/string&
&string name=&sohusuishenkan&&搜狐随身看&/string&
&string name=&neteasemicroblog&&网易微博&/string&
&string name=&douban&&豆瓣&/string&
&string name=&youdao&&有道云笔记&/string&
&string name=&evernote&&印象笔记&/string&
&string name=&linkedin&&Linked In&/string&
&string name=&googleplus&&Google+&/string&
&string name=&foursquare&&FourSquare&/string&
&string name=&qq&&QQ&/string&
&string name=&pinterest&&Pinterest&/string&
&string name=&flickr&&Flickr&/string&
&string name=&tumblr&&Tumblr&/string&
&string name=&dropbox&&Dropbox&/string&
&string name=&vkontakte&&VK&/string&
&string name=&instagram&&Instagram&/string&
&string name=&yixin&&易信&/string&
&string name=&yixinmoments&&易信朋友圈&/string&
&string name=&share_to_qzone&&分享到QQ空间&/string&
&string name=&incentive_title&&分享有奖&/string&
&string name=&failed_to_start_incentive_page&&无法打开“分享有奖页面”&/string&
&string name=&download_faield&&下载失败&/string&
&string name=&cancel&&取消&/string&
&string name=&finish&&完成&/string&
&string name=&sharing&&分享操作正在后台进行…&/string&
&string name=&share_to&&分享到&/string&
&string name=&share&&分享&/string&
&string name=&multi_share&&图文分享&/string&
&string name=&share_completed&&分享成功&/string&
&string name=&share_canceled&&分享已取消&/string&
&string name=&select_one_plat_at_least&&请选择一个目标平台&/string&
&string name=&list_friends&&%s的朋友&/string&
&string name=&share_failed&&分享失败&/string&
&string name=&pull_to_refresh&&下拉刷新&/string&
&string name=&release_to_refresh&&松开刷新&/string&
&string name=&refreshing&&刷新中…&/string&
&/resources&
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 喵哆哆 的文章

 

随机推荐